【问题标题】:C#/ XML Select Node RangeC#/ XML 选择节点范围
【发布时间】:2018-01-27 12:25:50
【问题描述】:

我如何选择之间的所有节点

"bname="1 摩西" cnumber="1" vnumber="1""

"bname="1 摩西" 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);

但我不知道如何在两个“CHAPTER”/节点之间全选。 缺少像

这样的东西
 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>

请帮忙:/ 谢谢 ! :)

【问题讨论】:

    标签: c# xml parsing xpath nodes


    【解决方案1】:

    您可以使用and 组合cnumber 值的下限和上限两个条件,例如(为了便于阅读,换行):

    /XMLBIBLE
    /BIBLEBOOK[@bname='1 Mose']
    /CHAPTER[@cnumber > 1 and @cnumber < 3]
    /VERS[@vnumber=1]
    

    【讨论】:

    • 您好,感谢您的回答。当 "cnumber" 是字符串 时怎么办?或者什么时候会有几本我想要的 BIBLEBOOK 范围?
    猜你喜欢
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    相关资源
    最近更新 更多