如何从xml文件中选择节点值 [英] how to select a node value from xml file

查看:109
本文介绍了如何从xml文件中选择节点值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,

我必须阅读一个XML文件...

hello,

I have to read a XML file ...

<n1000 used="False">0</n1000>
<n500 used="True">0</n500>
<n100 used="False">1</n100>
<n50 used="True">0</n50>
<n20 used="True">0</n20>



这些是该xml文件中存在的一些节点.
现在,我想获取其属性被使用的节点的值="False"
如何检查属性值并相应地获取节点值.

谢谢.



these are some nodes present in that xml file.
Now I want to get the values of the node whose property is used="False"
How to check the property value and get the node value accordingly.

Thanks.

推荐答案

检查此内容:

Check this:

<nodes>
  <n1000 used="False">0</n1000>
  <n500 used="True">0</n500>
  <n100 used="False">1</n100>
  <n50 used="True">0</n50>
  <n20 used="True">0</n20>
</nodes>





public static void ReadNodesWithSpecificAttributeValue(XmlDocument document, string attribute, string value)
        {
            foreach (XmlNode node in document.SelectNodes("//nodes")[0].ChildNodes)
            {
                if (node.Attributes[attribute] != null)
                {
                    if (node.Attributes[attribute].Value == value)
                    {
                        Console.WriteLine("Found node with attribute user = false");
                    }
                }
            }
        }


Manas Bhardwaj的解决方案1很好.

或者,可以按以下方式使用LINQ :

The solution 1 by Manas Bhardwaj is good.

Alternatively, LINQ can be used as follows:

Dim xmlString As String = _
                      "<Root><n1000 used=""False"">0</n1000><n500 used=""True"">0</n500>" & _
                      "<n100 used=""False"">1</n100><n50 used=""True"">0</n50>" & _
                      "<n20 used=""True"">0</n20></Root>"
Dim xelement As XElement = XElement.Parse(xmlString)

Dim requiredValues = from x in xelement.Descendants()
                     where x.Attribute("used").Value = "False"
                     select x.Value
'requiredValues
'0
'1


如果不能使用LINQ ,例如,仅使用.NET 2.0,则XPath 可以与XmlDocument 类一起使用,如下所示


If LINQ cannot be used say .NET 2.0 is only to be used then XPath can be used with XmlDocument class as shown below

Dim xmlDoc as XmlDocument = new XmlDocument()
xmlDoc.LoadXml(xmlString)
Dim requiredNodes = xmlDoc.SelectNodes("/Root/*[@used='False']")
for each node as XmlNode in requiredNodes
    Console.WriteLine(node.InnerText)
next node

'Output
'0
'1


在这里,XPath 查询字符串"/Root/*[@used=''False'']" 过滤Root 节点下的所有具有


Here, the XPath query string "/Root/*[@used=''False'']" filters all nodes under the Root node, which have the

attribute used equal to False.<br />


这篇关于如何从xml文件中选择节点值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆