C#/ XML选择节点范围

时间:2018-01-27 12:25:51

标签: c# xml parsing xpath nodes

如何选择

之间的所有节点

“bname =”1 Mose“cnumber =”1“vnumber =”1“”

“bname =”1 Mose“cnumber =”3“vnumber =”1“”????

我尝试构建xPath

private String xPathFormatString = "/XMLBIBLE/BIBLEBOOK[@bname='{0}']/CHAPTER[@cnumber='{1}']/VERS[@vnumber='{2}']";
string xPath = String.Format(xPathFormatString, entry.NumberFrom + " " + entry.NameFrom, entry.ChapterFrom, entry.VersFrom);
nodeList = xmlDocument.SelectNodes(xPath);

但我不知道如何在两个“章节”/节点之间选择所有内容。 缺少像

这样的东西
 betweenNodeList = xmlDocument.SelectAllNodesBetween(xPath1,xPath2);

<BIBLEBOOK bname="1 Mose" bnumber="1" bsname="1Mo">
    <CHAPTER cnumber="1">
      <VERS vnumber="1">A Text </VERS>
    </CHAPTER>
    <CHAPTER cnumber="2">
      <VERS vnumber="1">Another Text </VERS>
    </CHAPTER>
    <CHAPTER cnumber="3">
      <VERS vnumber="1">A third Text </VERS>
    </CHAPTER>
  </BIBLEBOOK>

请帮忙:/ 谢谢 ! :)

1 个答案:

答案 0 :(得分:1)

您可以使用cnumber组合两个条件,例如/XMLBIBLE /BIBLEBOOK[@bname='1 Mose'] /CHAPTER[@cnumber > 1 and @cnumber < 3] /VERS[@vnumber=1] 值的下限和上限(为了便于阅读,将其换行):

{{1}}