来自XML的读者节点

时间:2013-07-27 23:18:10

标签: c# xml xmlnode

我有这个XML,我尝试读取scpefic节点但不工作=(

我的代码是:

XmlDocument doc = new XmlDocument();

            doc.Load("https://apps.db.ripe.net/whois/search.xml?query-string=193.200.150.125&source=ripe");

            XmlNode node = doc.SelectSingleNode("/whois-resources/objects/attributes/descr");

            MessageBox.Show(node.InnerText);

enter image description here图片上的两个圆圈值

网址:https://apps.db.ripe.net/whois/search.xml?query-string=193.200.150.125&source=ripe

有可能吗?

2 个答案:

答案 0 :(得分:1)

当您正在寻找具有属性" name"的节点时设置为特定值,您需要使用不同的语法。

你正在寻找类似的东西:

XmlNode node = doc.SelectSingleNode("/whois-resources/objects/object/attributes/attribute[@name=\"descr\"]");

XmlAttribute attrib = node.Attributes["value"];

MessageBox.Show(attrib.Value);

这将选择您的第二个节点示例,获取value属性的值,然后显示它。

答案 1 :(得分:1)

如何使用Linq To Xml?

var xDoc = XDocument.Load("https://apps.db.ripe.net/whois/search.xml?query-string=193.200.150.125&source=ripe");
var desc = xDoc.Descendants("attribute")
            .Where(a => (string)a.Attribute("name") == "descr")
            .Select(a => a.Attribute("value").Value)
            .ToList();

var desc = xDoc.XPathSelectElements("//attribute[@name='descr']")
            .Select(a => a.Attribute("value").Value)
            .ToList();