我的问题是这样的.假设我有像这样的xml
<root>
<child Name = "child1">
<element1>Value1</element1>
<element2>Value2</element2>
</child>
<child Name = "child2">
<element1>Value1</element1>
<element2>Value2</element2>
<element3>Value3</element3>
</child>
</root>
Run Code Online (Sandbox Code Playgroud)
我有一个方法获取参数XmlNode"节点".让我们说"节点"有值"child1"然后我尝试这样:
node.SelectSingleNode( "//element3" );
Run Code Online (Sandbox Code Playgroud)
问题是这段代码从"child2"返回element3.我想要的是如果没有"node"的子"element3"返回null,所以我手动添加它.
最
诚挚的问候,Iordand
Wel*_*bog 22
你拥有的XPath表达式不是你想要的.
替换为:
node.SelectSingleNode( "element3" );
Run Code Online (Sandbox Code Playgroud)
而且你会得到你正在寻找的结果.
kaz*_*zim 10
当我想在指定节点上运行xpath时,以下工作是完美的.
XmlNodeList nodes = xmlDoc.SelectNodes(".//Child");
Run Code Online (Sandbox Code Playgroud)
"//"是全局查找.
你需要做的是获得所有孩子的清单
XmlNodeList nodes = xmlDoc.SelectNodes("//Child");
Run Code Online (Sandbox Code Playgroud)
循环遍历该列表并执行
XmlNode node = nodes.SelectSingleNode("element3");
Run Code Online (Sandbox Code Playgroud)
如果它不在那里,它将返回null,并将逐步查看每个孩子.
| 归档时间: |
|
| 查看次数: |
17124 次 |
| 最近记录: |