这是我的Xml文档。
<w:document>
<w:body>
<w:p>para1</w:p>
<w:p>para2</w:p>
<w:p>para3</w:p>
<w:p>para4</w:p>
<w:p>para5</w:p>
<w:p>para6</w:p>
<w:p>para7</w:p>
<w:p>para8</w:p>
<w:p>para9</w:p>
<w:p>para10</w:p>
</w:body>
</w:document>
现在,我想要检索第7个.ie,Para7。
的文本我如何得到它?
答案 0 :(得分:3)
您可以使用[]
括号索引到XPath表达式。例如,您可以使用//w:p[7]
来访问第7个元素。
请注意,XPath索引是基于1的索引,而不是基于0的索引。
答案 1 :(得分:0)
使用强>:
/*/*/*[7]/text()
如果您已使用XPath引擎的API正确注册了命名空间,则可以使用:
/w:document/w:body/w:p[7]/text()
注意强>:
请注意,将[]
运算符与//
伪运算符一起使用时会出现问题:在这个特定的简单情况下,表达式
//w:p[7]
选择所需元素,但一般情况下,它会选择每个w:p
元素,即其父级的第7个(按文档顺序)w:p
子级。
因此,根据此文档进行评估:
<w:document xmlns:w="w:w">
<w:body>
<a>
<w:p>para1</w:p>
<w:p>para2</w:p>
<w:p>para3</w:p>
</a>
<b>
<w:p>para4</w:p>
<w:p>para5</w:p>
<w:p>para6</w:p>
<w:p>para7</w:p>
<w:p>para8</w:p>
<w:p>para9</w:p>
</b>
<w:p>para10</w:p>
</w:body>
</w:document>
表达式//w:p[7]
不会选择任何内容。
但是,根据此文档进行评估:
<w:document xmlns:w="w:w">
<w:body>
<a>
<w:p>para1</w:p>
<w:p>para2</w:p>
<w:p>para3</w:p>
<w:p>para4</w:p>
<w:p>para5</w:p>
<w:p>para6</w:p>
<w:p>para7</w:p>
<w:p>para8</w:p>
</a>
<b>
<w:p>para9</w:p>
<w:p>para10</w:p>
<w:p>para11</w:p>
<w:p>para12</w:p>
<w:p>para13</w:p>
<w:p>para14</w:p>
<w:p>para15</w:p>
</b>
</w:body>
</w:document>
相同的表达式选择:
<w:p xmlns:w="w:w">para7</w:p>
<w:p xmlns:w="w:w">para15</w:p>