java - Apache Camel - 从 XML 获取 xpath 值

标签 java xml xpath apache-camel file-transfer

我正在尝试使用 Camel 制作一个程序。该程序应该能够接收名为 inbox_xml_files 的文件夹中的 xml 文件。

然后程序应该获取 xml 文件内 < Country > 元素节点的文本值。

如果文本值为“Denmark”,则文件应移动到名为“outbox_Denmark”的文件夹。

如果文本值为“Sweden”,则文件应移动到名为“outbox_Sweden”的文件夹。

如果文本值是其他内容,则应将文件移动到名为“outbox_Other”的文件夹。

这是我用于测试的 XML 文件:

    <?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>

camel 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>//*[local-name() = 'Country' and text()='Sweden']</camel:xpath>

关于java - Apache Camel - 从 XML 获取 xpath 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43047394/

相关文章:

java - 日期返回 null

Java- 解析 Twitter 的 created_at 字符串

java - Java 中 StringTokenizer 类与 String.split 方法的性能对比

javascript - 在浏览器中呈现后使用 javascript 和 css 样式化 XML(不是 HTML)

xslt - 如何使用来自其他节点的计算数据汇总节点

javascript - XPath 表达式异常

java - 具有并行性的 ForkJoinPool 构造函数

xml - 上传时 Amazon S3 存储桶 MalformedXML 错误

xml - 在R中的<td>元素内解析<br>

java - 使用 XPath 提取和净化 XML 数据