c# - 从节点列表中获取节点列表 c# .net

标签 c# .net xml xpath

下面的代码给了我一个迭代的节点列表:

XPathNavigator thisNavigator = thisXmlDoc.CreateNavigator();
XPathNodeIterator dossierNodes = thisNavigator.Select("changedthisname/dossiers/dossier");

我正在处理这个节点列表,我需要从这个列表中获取另一个节点列表。 我正在尝试使用以下代码来做到这一点:

XPathNavigator alineanodesNavigator = dossierNodes.Current;
XPathNodeIterator alineaNodes = alineanodesNavigator.Select("/dossier/alineas/alinea");

我在 while(dossierNodes.MoveNext()) 循环中使用此代码,并希望此节点列表充满所有“allinea”。但是,我没有将任何结果返回给我的 alineaNodes 迭代器。

文档结构是这样的:

alt text

如何获取当前dossier节点的alinea节点??

我调试了一下,结果是这样的:

alt text

    Stream responseStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(responseStream, System.Text.Encoding.UTF8);
    string xml = reader.ReadToEnd();
    XmlDocument thisXmlDoc = new XmlDocument();
    thisXmlDoc.LoadXml(xml);

    XPathNavigator thisNavigator = thisXmlDoc.CreateNavigator();

最佳答案

正确的完整路径是

changedthisname/dossiers/dossier/alineas/alinea

因此,如果您首先选择 changedthisname/dossiers/dossier,则相对路径为:

alineas/alinea

关于c# - 从节点列表中获取节点列表 c# .net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3627477/

相关文章:

c - R XML - 无法从内存中删除内部 C 节点

c# - 为什么XDeclaration会忽略我设置的编码参数

c# - 使用 ConcurrentBag 的并行 ForEach 未按预期工作

c# - "Thread was being aborted"0n 大数据集

c# - ToolStripStatusLabel 显示为黑框

c# - 是否有可能完全用托管 .NET 语言编写 JIT 编译器(针对 native 代码)

c# - WPF BIND 通过位图资源动态绑定(bind)图像

c# - 检测进程的两个窗口

.net - IIS 缓存重试

html - 将 HTML 转换为 HTML : use XSLT?