2014-02-20 1 views
0

mule에서는 데이터 변환 프로그램을 사용하여 Excel 파일을 XML 파일로 변환합니다. 데이터 매퍼가 정상적으로 작동합니다. 하지만 하나의 엑셀 파일이 다른 XML 형식을 원한다.trasfer 하나의 XML 문서를 여러 장의 XML 문서로 변환합니다.

내 구성 XML :

<data-mapper:config name="ms_excel_to_xml_2" transformationGraphPath="ms_excel_to_xml_2.grf" doc:name="ms_excel_to_xml_2"/> 
    <jms:activemq-connector name="Active_MQ1" brokerURL="tcp://10.16.20.132:61616" validateConnections="true" doc:name="Active MQ" password="manager" username="system" specification="1.1"/> 
    <flow name="file-processFlow1" doc:name="file-processFlow1"> 
     <file:inbound-endpoint path="C:\Users\rajesh.narravula\Desktop\New folder" responseTimeout="10000" doc:name="File" fileAge="50000"> 
      <file:filename-regex-filter pattern=".*.xlsx" caseSensitive="false"/> 
     </file:inbound-endpoint> 
     <data-mapper:transform doc:name="MS Excel To XML" config-ref="ms_excel_to_xml_2" /> 
     <jms:outbound-endpoint doc:name="JMS" queue="OrchestratorQueue" connector-ref="Active_MQ1" responseTimeout="0"> 
      <jms:transaction action="ALWAYS_BEGIN" timeout="10000"/> 
     </jms:outbound-endpoint> 
    </flow> 

이 내 엑셀 파일 내용이다 :

caseType claimNo status customerName 
------------------------------------------ 
CashLess  9  Open Varun Arya 
CashLess  9  Open Varun Arya 

실제 XML (datamapper 후) 나는이었다지고있어 (String로서) :

<?xml version="1.0" encoding="UTF-8"?> 
<CashLess> 
    <caseType>CashLess</caseType> 
    <claimNo>9</claimNo> 
    <status>Open</status> 
    <customerName>Varun Arya</customerName> 
</CashLess> 
<CashLess> 
    <caseType>CashLess</caseType> 
    <claimNo>9</claimNo> 
    <status>Open</status> 
    <customerName>Varun Arya</customerName> 
</CashLess> 

(복수 문자열 개체) :

<?xml version="1.0" encoding="UTF-8"?> 
<CashLess> 
    <caseType>CashLess</caseType> 
    <claimNo>9</claimNo> 
    <status>Open</status> 
    <customerName>Varun Arya</customerName> 
</CashLess> 

*another one* 

<?xml version="1.0" encoding="UTF-8"?> 
<CashLess> 
    <caseType>CashLess</caseType> 
    <claimNo>9</claimNo> 
    <status>Open</status> 
    <customerName>Varun Arya</customerName> 
</CashLess> 

내가 원하는 변경 사항을 도와주세요. 감사합니다. .

답변

0
  1. 1.Convert의는 JSON에 엑셀.
  2. JSON을 표현식으로 변환하십시오.
  3. 콜렉션 스플리터를 사용하십시오.
  4. 개체를 JSON으로 변환.
  5. 그런 다음 JSON을 XML로 변환하십시오.

샘플 코드 :

<data-mapper:config name="ms_excel_to_json_1" transformationGraphPath="ms_excel_to_json_1.grf" doc:name="ms_excel_to_json_1"/> 
<data-mapper:config name="json_to_xml" transformationGraphPath="json_to_xml.grf" doc:name="json_to_xml"/> 
<data-mapper:config name="json_to_xml_1" transformationGraphPath="json_to_xml_1.grf" doc:name="json_to_xml_1"/> 
<flow name="file-processFlow1" doc:name="file-processFlow1"> 
    <file:inbound-endpoint path="C:\Users\hello\Desktop\New folder" responseTimeout="10000" doc:name="File" fileAge="50000"> 
     <file:filename-regex-filter pattern=".*.xlsx" caseSensitive="false"/> 
    </file:inbound-endpoint> 
    <data-mapper:transform config-ref="ms_excel_to_json_1" doc:name="MS Excel To JSON"/> 
    <json:json-to-object-transformer returnClass="java.util.List" doc:name="JSON to Object"/> 
    <expression-transformer expression="#[message.payload]" doc:name="Expression"/> 
    <collection-splitter doc:name="Collection Splitter"/> 
    <json:object-to-json-transformer doc:name="Object to JSON"/> 
    <data-mapper:transform config-ref="json_to_xml_1" doc:name="JSON To XML"/> 
    <object-to-string-transformer doc:name="Object to String"/> 
</flow> 

enter image description here

관련 문제