我的xml文件结构是这样的

<?xml version="1.0" encoding="utf-8" ?>
<book>
    <chapters>
        <chapter id="1">
            <page id="1" cid= "1" bid = "Book1">
                <text>Hi</text>
            </page>
            <page id="2" cid= "1" bid = "Book1">
                <text>Hi</text>
            </page>
        </chapter>
        <chapter id="2">
            <page id="1" cid= "2" bid = "Book1">
                <text>Hi</text>
            </page>
            <page id="2" cid= "2" bid = "Book1">
                <text>Hi</text>
            </page>
        </chapter>
        <chapter id="3">
            <page id="1" cid= "3" bid = "Book1">
                <text>Hi</text>
            </page>
            <page id="2" cid= "3" bid = "Book1">
                <text>Hi</text>
            </page>
        </chapter>
    </chapters>
</book>

我想通过传递页面ID 章节ID 来获取特定的页面节点。我该如何实现?

同样,书节点包含太多章节,每个章节包含许多页面。因此,我正在使用SAX解析器来解析内容。

最佳答案

“如何使用Java中的XPath从XML获取特定的节点?”

我对Java和Android不太熟悉,但是从XML示例中获取特定page的xpath,传递page idchapter id应该看起来像这样:

//chapter[@id='chapter_id_here']/page[@id='page_id_here']

简要说明:
  • //chapter:在XML中的任何位置找到chapter元素...
  • [@id='chapter_id_here']:... ...其中id属性值等于特定章节ID
  • /page:从每个过滤的chapter元素中,找到子元素page ...
  • [@id='page_id_here']:... ...其中id属性值等于特定页面ID

  • 您可以按照以下线程进行实现,以在Java:How to read XML using XPath in Java和Android:Search in XML File with XPath in Android中执行xpath表达式。

    07-24 19:25
    查看更多