2017-06-23 37 views
0
<http:listener config-ref="HTTP_Listener_Configuration" path="/order" allowedMethods="POST" doc:name="HTTP"/> 
    <splitter expression="#[xpath3('//elements/element',payload,'NODESET')]" doc:name="Splitter"/> 

我輸入XML分路器不一樣,如果XML命名空間返回結果:前綴不存在於輸入XML

<?xml version="1.0" encoding="UTF-8"?> 
<elements xmlns="http://xxx/xxservice"> 

    <element> 
     <date>2015-09-03T14:30:36.000Z</order-date> 
     <created-by>user1</created-by> 

    </element> 

     <element> 
     <date>2015-09-04T14:30:36.000Z</order-date> 
     <created-by>user2</created-by> 

    </element> 

</elements> 

這不返回任何結果。如果我改變輸入XML的指引下,分路器返回resutls

<?xml version="1.0" encoding="UTF-8"?> 
<elements xmlns:a="http://xxx/xxservice"> 

    <element> 
     <date>2015-09-03T14:30:36.000Z</order-date> 
     <created-by>user1</created-by> 

    </element> 

     <element> 
     <date>2015-09-04T14:30:36.000Z</order-date> 
     <created-by>storefront2</created-by> 

    </element> 

</elements> 

請注意我唯一改變的是的xmlns到的xmlns:一個在<elements xmlns="http://xxx/xxservice">

的原因是什麼?

回答

0

這完全是由於命名空間問題。如果你有一個企業許可證就可以提高一票,騾支持

或者你可以做的就是儘量在XPATH3動態跳繩命名空間,可以在下面的提取XML元素值使用mulexml:dom-to-xml-transformer: -

<splitter expression="#[xpath3('/*:elements/*:element',payload,'NODESET')]" doc:name="Splitter"/> 
<mulexml:dom-to-xml-transformer doc:name="DOM to XML"/> 
<logger message="created-by: #[xpath3('/*:element/*:created-by',payload,'STRING')]" level="INFO" doc:name="Logger"/> 
<logger message="date: #[xpath3('/*:element/*:date',payload,'STRING')]" level="INFO" doc:name="Logger"/> 

上述表達式將努力爲命名空間你在這裏提供,你可以得到的XML元素值不任何問題和分配器不會投訴

相關問題