0

我想尝试在 Android 应用程序中使用 XPath 解析 xml。我的 XML 文件看起来像这样。

<expenses>
    <entry type="fixed">
        <amount>200</amount>
        <recurring>true</recurring>
        <category>Home/Rent</category>
        <payee>Ahmet Necati</payee>
        <account>1</account>
        <startDate>2013-01-01</startDate>
        <endDate>2013-01-01</endDate>
    </entry>
    <entry type="variable">
        <amount>150</amount>
        <category>Departmental</category>
        <payee>Ahmet Necati</payee>
        <recurring>true</recurring>
        <startDate>2013-01-01</startDate>
        <endDate>2013-01-01</endDate>
        <account>1</account>
    </entry>
</expenses>

我想尝试用这样的xPath解析xml

String expression = "/expenses/entry[xs:date(endDate) < xs:date('2013-10-10')]";
NodeList widgetNode = (NodeList) xpath.evaluate(expression, document,
        XPathConstants.NODESET);

但我无法处理它。它返回 0 节点。

编辑:我想让所有节点“endDate”小于特定日期,例如:我想获得结束日期小于“2013-10-10”的节点

4

1 回答 1

1

“XML 模式构造函数”是 XPath 2.0 的一部分,但 Android 仅支持 XPath 1.0:http: //developer.android.com/reference/javax/xml/xpath/package-summary.html

一种解决方案是注册您自己的函数来进行转换(请参阅 参考资料XPathFunctionResolver)。另一个是研究支持 XPath 2.0 的库。

于 2013-06-10T18:11:49.933 回答