XPath表达式,用于在前面和后面节点的已定义序列之间选择节点

时间:2010-10-01 15:25:40

标签: c# .net xml xpath linq-to-xml

我有以下结构化XML文件:

   <w:document>
      <w:body>
        <w:p>
           <w:r>
              <w:t/>
           </w:r>
        </w:p>
        <w:p>
           <w:r>
              <w:t/>
           </w:r>
        </w:p>
        <w:p>
           <w:r>
              <w:instrText/>
           </w:r>
        </w:p>
        <w:p>
           <w:r>
              <w:t/>
           </w:r>
        </w:p>
        <w:p>
           <w:r>
              <w:instrText/>
           </w:r>
        </w:p>
        <w:p>
           <w:r>
              <w:t/>
           </w:r>
        </w:p>
     </w:body>
  </w:document>

我正在拼命寻找 XPath 表达式来选择两个<w:t>节点之间的所有<w:instrText>个节点。 <w:t>节点基本上在XML文档周围自由出现,但我只对两个<w:instrText>节点之间的节点感兴趣。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

  我正拼命想找到一个   用于选择所有<w:t>的XPath表达式   两个节点之间的节点   <w:instrText>个节点

/w:document/w:body/w:p/w:r/w:instrText/following::w:t
      [count(.|/w:document/w:body/w:p/w:r/w:instrText/preceding::w:t) =
       count(/w:document/w:body/w:p/w:r/w:instrText/preceding::w:t)]

节点集交集表达式

答案 1 :(得分:1)

不是那么简单://x/t