2012-12-17 31 views
5

WSO2 ESB उदाहरण http://wso2.org/library/articles/2011/01/wso2-esb-example-file-processing साथ dabbling लेकिन एक समस्या है, जहां जब एक साधारण csv फ़ाइलWSO2 ESB फ़ाइल प्रोसेसिंग उदाहरण smooks सीएसवी पार्सर पहली पंक्ति पेलोड नाम स्थान में शामिल

name0,value0 
name1,value1 
name2,value2 
name3,value3 

इस विन्यास

<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" xmlns:csv="http://www.milyn.org/xsd/smooks/csv-1.1.xsd"> 
<csv:reader fields="name,value" /> 
</smooks-resource-list> 
का उपयोग कर smooks द्वारा पार्स किया गया है का सामना

बड़े पैमाने पर सही आउटपुट में परिणाम देता है लेकिन पहली पंक्ति में पेलोड नेमस्पेस शामिल है जो गलत है

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
<soapenv:Body> 
    <text xmlns="http://ws.apache.org/commons/ns/payload">name0,value0 
name1,value1 
name2,value2 
name3,value3</text> 
</soapenv:Body> 
</soapenv:Envelope> 

इसलिए जब पहला नाम 0 मान पढ़ा जाता है तो इसमें भी गलत है।

Smooks तो

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
<soapenv:Body> 
    <csv-set> 
     <csv-record number="1"> 
      <name>&lt;?xml version='1.0' encoding='utf-8'?>&lt;text xmlns="http://ws.apache.org/commons/ns/payload">name0</name> 
      <value>value0</value> 
     </csv-record> 
     <csv-record number="2"> 
      <name>name1</name> 
      <value>value1</value> 
     </csv-record> 
     <csv-record number="3"> 
      <name>name2</name> 
      <value>value2</value> 
     </csv-record> 
     <csv-record number="4"> 
      <name>name3</name> 
      <value>value3&lt;/text></value> 
     </csv-record> 
    </csv-set> 
</soapenv:Body> 
</soapenv:Envelope> 

तो Smooks सब यह पूछा जाता है के रूप में इनपुट के रूप में पिछले शामिल कर रही है इस धर्मान्तरित? हालांकि, यह समझने वाले तत्वों की संख्या 4 के रूप में गिना जाता है, इसलिए ऐसा नहीं है कि सीएसवी को हेडर पंक्ति होनी चाहिए। मैं हेडर पंक्ति समेत (कुछ हद तक) हल कर सकता हूं लेकिन फिर तत्व गणना गलत है। मैं सीएसवी की आखिरी पंक्ति पर कैरिज रिटर्न सहित अंत समापन को हल कर सकता हूं।

मैं इसे कैसे हल कर सकता हूं? मुझे एक साल पहले एक ही प्रश्न पूछने के लिए एक ही प्रश्न मिला है लेकिन कोई जवाब नहीं है।

+1

यदि आपको अपने प्रश्न का समाधान मिला है, तो कृपया इसे उत्तर के रूप में पोस्ट करें और इसे स्वीकार करें। जब आप कर सकते हैं अपने सवालों के जवाब देने के लिए यह बिल्कुल ठीक है। इस तरह स्टैक ओवरफ्लो आपके प्रश्न को उत्तर के रूप में पंजीकृत कर सकता है, जो तब नहीं हो सकता जब आप शीर्षक में इंगित करते हैं। – joergl

उत्तर

0

मैंने इसे अभी हल किया है। मेरे smooks टैग में

<smooks xmlns="http://ws.apache.org/ns/synapse" config-key="conf:/smooks-config.xml"> 
    <input type="text"/> 
    <output type="xml"/> 
</smooks> 

मेरे पास पहला इनपुट तत्व xml पर सेट था। पाठ में बदलना समस्या हल हो गई। (डब्ल्यूएसओ 2 में जीयूआई संपादक में यह इन तत्वों को रखने के लिए डिफ़ॉल्ट है जबकि ट्यूटोरियल में ये बिल्कुल नहीं है)।

+0

कृपया उत्तर में उत्तर दें, प्रश्न में नहीं। –