我是新的电子数据交换,所以我需要你给予我一些重要的信息。我正在工作的项目,我们有电子数据交换文件,我们需要将其转换为java模型类。我有模型类。我的电子数据交换消息格式被称为EDIFACT联合国。我想要的是执行此操作使用第三方库。有任何库来做这件事吗?我不想使用一些其他的API,因为安全。
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]);
uplii1fm2#
您可以将EDI文件转换为JSON,然后将JSON序列化为XML -请参阅EdiNation使用云API的Web翻译器。
2条答案
按热度按时间6vl6ewon1#
您可以在Powershell中执行此操作
uplii1fm2#
您可以将EDI文件转换为JSON,然后将JSON序列化为XML -请参阅EdiNation使用云API的Web翻译器。