Java ApacheCamel-从XML获取xpath值
我正试图用camel做一个程序。此程序应该能够接收名为“收件箱xml文件”的文件夹中的xml文件 然后程序应该获取xml文件中Java ApacheCamel-从XML获取xpath值,java,xml,xpath,apache-camel,file-transfer,Java,Xml,Xpath,Apache Camel,File Transfer,我正试图用camel做一个程序。此程序应该能够接收名为“收件箱xml文件”的文件夹中的xml文件 然后程序应该获取xml文件中元素节点的文本值 如果文本值为“丹麦”,则应将文件移动到名为“发件箱\丹麦”的文件夹中 如果文本值为“瑞典”,则应将文件移动到名为“发件箱\瑞典”的文件夹中 如果文本值是其他值,则应将文件移动到名为“发件箱\其他”的文件夹中 这是我用于测试的XML文件: <?xml version="1.0"?> <Company> <Emplo
<?xml version="1.0"?>
<Company>
<Employee>
<FirstName>Mike</FirstName>
<LastName>James</LastName>
<ContactNo>1234567890</ContactNo>
<Email>oy@hotmail.com</Email>
<Address>
<Country>Denmark</Country>
<City>Copenhagen</City>
<Zip>1234</Zip>
</Address>
</Employee>
</Company>
迈克
詹姆斯
1234567890
oy@hotmail.com
丹麦
哥本哈根
1234
骆驼xml文件(我遇到的问题):
<camelContext id="camelId" xmlns="http://camel.apache.org/schema/spring">
<camel:route id="_route1">
<camel:from id="_from1" uri="file:C:/inbox_xml_files?noop=false"/>
<camel:choice id="_choice1">
<camel:when id="_when1">
<camel:xpath>
//Company/Employee/Address/Country = 'Denmark'
</camel:xpath>
<camel:to id="_to1" uri="file:C:/outbox_Denmark"/>
</camel:when>
<camel:when id="_when2">
<camel:xpath>
//Company/Employee/Address/Country = 'Sweden'
</camel:xpath>
<camel:to id="_to2" uri="file:C:/outbox_Sweden"/>
</camel:when>
<camel:otherwise id="_otherwise1">
<camel:to id="_to3" uri="file:C:/outbox_Other"/>
</camel:otherwise>
</camel:choice>
</camel:route>
</camelContext>
//公司/员工/地址/国家='丹麦'
//公司/员工/地址/国家='瑞典'
我认为问题出在
<camel:xpath>
//*:Company/*:Employee/*:Address/*:Country = 'Sweden'
</camel:xpath>
//*:公司/*:员工/*:地址/*:国家='瑞典'
试试这个:
<camel:xpath>//Company/Employee/Address/Country='Sweden'</camel:xpath>
//公司/员工/地址/国家/瑞典'
或
/*[local-name()='Country'和text()='Sweden']
我认为您不需要//Company,请尝试/Company将xpath更改为//Company/Employee/Address/Country[.='danmer']
是的,`///Company/../text()='danmer'也不起作用,例如使用text()来指示xml节点中的文本。不管怎样,它都是标准的xpath,所以在互联网上搜索一些例子吧
<camel:xpath>//*[local-name() = 'Country' and text()='Sweden']</camel:xpath>