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

1 つの解決策は、独自の関数を登録して変換を行うことです (「参考文献」を参照XPathFunctionResolver)。もう 1 つの方法は、XPath 2.0 をサポートするライブラリを調べることです。

于 2013-06-10T18:11:49.933 に答える