16
A
回答
1
根據你的問題,我試圖做一些研究。請檢查它是否可以幫助你。
因此,這裏的源EDI文件將被轉換:
HDR*1*0*59.97*64.92*4.95*Wed Nov 15 13:45:28 EST 2006
CUS*user1*Harry^Fletcher*SD
ORD*1*1*364*The 40-Year-Old Virgin*29.98
ORD*2*1*299*Pulp Fiction*29.99
這是我們改造的預期效果:
<Order>
<header>
<order-id>1</order-id>
<status-code>0</status-code>
<net-amount>59.97</net-amount>
<total-amount>64.92</total-amount>
<tax>4.95</tax>
<date>Wed Nov 15 13:45:28 EST 2006</date>
</header>
<customer-details>
<username>user1</username>
<name>
<firstname>Harry</firstname>
<lastname>Fletcher</lastname>
</name>
<state>SD</state>
</customer-details>
<order-item>
<position>1</position>
<quantity>1</quantity>
<product-id>364</product-id>
<title>The 40-Year-Old Virgin</title>
<price>29.98</price>
</order-item>
<order-item>
<position>2</position>
<quantity>1</quantity>
<product-id>299</product-id>
<title>Pulp Fiction</title>
<price>29.99</price>
</order-item>
</Order>
Smooks配置
我們簡單y指定SmooksEDIParser作爲流解析器。可以添加更多轉換配置來進一步轉換此消息。 這裏的配置( 「的Smooks-config.xml中」):
<?xml version="1.0"?>
<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
xmlns:edi="http://www.milyn.org/xsd/smooks/edi-1.1.xsd">
<!--
Configure the EDI Reader to process the message stream into a stream of SAX events.
-->
<edi:reader mappingModel="/example/edi-to-xml-order-mapping.xml" />
</smooks-resource-list>
這裏的EDI映射( 「/src/main/java/example/edi-to-xml-order-mapping.xml」 ):
<?xml version="1.0" encoding="UTF-8"?>
<medi:edimap xmlns:medi="http://www.milyn.org/schema/edi-message-mapping-1.0.xsd">
<medi:description name="DVD Order" version="1.0" />
<medi:delimiters segment=" " field="*" component="^" sub-component="~" />
<medi:segments xmltag="Order">
<medi:segment segcode="HDR" xmltag="header">
<medi:field xmltag="order-id" />
<medi:field xmltag="status-code" />
<medi:field xmltag="net-amount" />
<medi:field xmltag="total-amount" />
<medi:field xmltag="tax" />
<medi:field xmltag="date" />
</medi:segment>
<medi:segment segcode="CUS" xmltag="customer-details">
<medi:field xmltag="username" />
<medi:field xmltag="name">
<medi:component xmltag="firstname" />
<medi:component xmltag="lastname" />
</medi:field>
<medi:field xmltag="state" />
</medi:segment>
<medi:segment segcode="ORD" xmltag="order-item" maxOccurs="-1">
<medi:field xmltag="position" />
<medi:field xmltag="quantity" />
<medi:field xmltag="product-id" />
<medi:field xmltag="title" />
<medi:field xmltag="price" />
</medi:segment>
</medi:segments>
</medi:edimap>
執行轉型:
// Instantiate Smooks with the config...
Smooks smooks = new Smooks("smooks-config.xml");
try {
// Filter the input message to the outputWriter...
smooks.filterSource(new StreamSource(messageIn), new
StreamResult(messageOut));
} finally {
smooks.close();
}
相關問題
- 1. Smooks EDI作家
- 2. 生成EDI文件(CMS1500表格)
- 3. EDI到Xml的smooks轉換問題
- 4. wso2 esb smooks un/edifact 96a EDI到XML
- 5. 使用smooks將EDI轉換爲多個XML
- 6. 如何生成990響應EDI文檔
- 7. EDI ISA和GS ID生成
- 8. 無法使Smooks EDI與駱駝一起工作
- 9. Smooks:如何在EDI X12中以不同順序處理分段?
- 10. 使用qmake生成具有FLTK fluild文件的生成文件?
- 11. 使用XSD文件生成XML文件
- 12. EDI ANSI X12 204 SEF文件
- 13. 如何理解EDI文件?
- 14. 無法讀取EDI文件
- 15. OOP EDI文件結構
- 16. 用C#解析EDI平面文件?
- 17. 用php/mysql解析EDI文件
- 18. Salesforce Connection使用smooks配置
- 19. 使用Smooks讀取CSV
- 20. 使用apache camel,smooks和flatpack
- 21. 使用文本框生成文件夾
- 22. 使用smooks解析csv文件返回錯誤null或空arg
- 23. 使用AJAX調用生成PDF文件
- 24. 如何檢索由smooks生成的java對象
- 25. EDI X12 810文檔
- 26. 使用ebp/esp與edi/esi
- 27. 使用外部庫時無法生成目標生成文件
- 28. 如何在使用C#生成後生成pdf文件大小
- 29. 如何使用msbuild生成過程中生成文件
- 30. 使用CMake生成Visual Studio 2015生成文件項目(GDB)
這個例子,你在這裏解釋將創建一個從EDI文件的XML文件。但是,有人問起關於從XML數據中準備EDI文件的問題。請讓我知道它是如何完成的。 – RCS 2016-03-02 11:43:08