我有这个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);
图片上的两个圆圈值
网址:https://apps.db.ripe.net/whois/search.xml?query-string=193.200.150.125&source=ripe
有可能吗?
答案 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();