我的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 id
和chapter 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表达式。