如何将edi文件转换为Java模型类?

mqkwyuun  于 2023-03-06  发布在  Java
关注(0)|答案(2)|浏览(122)

我是新的电子数据交换,所以我需要你给予我一些重要的信息。我正在工作的项目,我们有电子数据交换文件,我们需要将其转换为java模型类。我有模型类。我的电子数据交换消息格式被称为EDIFACT联合国。我想要的是执行此操作使用第三方库。有任何库来做这件事吗?我不想使用一些其他的API,因为安全。

6vl6ewon

6vl6ewon1#

您可以在Powershell中执行此操作

using assembly System 
using assembly System.Linq
using assembly System.Xml.Linq 

$ediFilename = "c:\temp\test.txt"
$ediData = Get-Content -Path $ediFilename
$template = @"
<?xml version="1.0" encoding="UTF-8"?>
<ediroot>
   <interchange Standard="ANSI X.12"
                AuthorizationQual="00"
                Authorization="          "
                SecurityQual="00"
                Security="          "
                Date=""
                Time=""
                StandardsId=""
                Version=""
                Control=""
                AckRequest=""
                TestIndicator="">
      <sender>
         <address Id="SENDER ID      " Qual="ZZ"/>
      </sender>
      <receiver>
         <address Id="RECEIVER ID    " Qual="ZZ"/>
      </receiver>
      <group GroupType=""
             ApplSender=""
             ApplReceiver=""
             Date=""
             Time=""
             Control=""
             StandardCode=""
             StandardVersion="">
         <transaction DocType="" Name="Invoice" Control="">
            <segment Id="BIG">
               <element Id="BIG01"></element>
               <element Id="BIG02"></element>
               <element Id="BIG04"></element>
            </segment>
          </transaction>
      </group>
   </interchange>
</ediroot>
"@

$xDoc = [System.Xml.Linq.XDocument]::Parse($template)

$big = $ediData -match "^BIG";
#$big = $big.Matches.Value;
$bigArray = $big.split('*');
$segments = $xDoc.Descendants("segment");
$xBig = [System.Linq.Enumerable]::Where($segments, [Func[object,bool]]{ param($x) [string]$x.Attribute("Id").Value -eq "BIG"})
$xBigElements = $xBig.Elements("element");
$xBigElements[0].SetValue($bigArray[1]); 
$xBigElements[1].SetValue($bigArray[2]); 
$xBigElements[2].SetValue($bigArray[4]);
uplii1fm

uplii1fm2#

您可以将EDI文件转换为JSON,然后将JSON序列化为XML -请参阅EdiNation使用云API的Web翻译器。

相关问题