如何使用XmlDocument获取相似节点名称的XmlNodes数据?

3

我的XML数据如下:

<response>
<result name="response" numFound="2" start="0">
<doc><str name="Author">ALi Ahmadi</str><int name="BookID">1904</int><str name="Title">BookName 1</str></doc>
<doc><str name="Author">Reza Javadi</str><int name="BookID">1523</int><str name="Title">BookName 2</str></doc>
</result>
</response>

我的C#代码是:
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.LoadXml(ResultData);

XmlNodeList XnList = XmlDoc.SelectNodes("/response/result/doc");
foreach (XmlNode Xn in XnList)
{
    string a = Xn["str"].InnerText;
    string b = Xn["int"].InnerText;
    string c = Xn["str"].InnerText;
    //string c = Xn["str[@name='Title']"].InnerText;//error !
}

a & c的结果是:"Ali Ahmadi",我如何将"BookName 1"存入c变量中?


文档有3个元素 - 一个字符串,带有属性名称="作者",一个整数,带有属性名称="书籍ID",以及一个字符串,带有属性名称"标题"。这几乎是伪代码本身 ;) - William Melani
我该如何获取作者和标题内容? - Ali Ahmadi
你为什么在一个文档元素中使用了两个 'str' 标签? - stay_hungry
如何获取具有“Title”属性名称的xml节点的内容?(例如:Xn [“str [@ name ='Title']”] .InnerText) - Ali Ahmadi
2个回答

2

如果您知道节点'Title'的索引,您可以通过以下代码获取它的innerHTML:

     c = Xn.ChildNodes[2].InnerText;

0

试一下这个

 string c = Xn["str"].Attributes["Title"].Value

这是错误的: (错误: 对象引用未设置为对象的实例。) - Ali Ahmadi
请检查 Attributes["Author"].Value 而不是 Attributes["Title"].Value。 - stay_hungry
嗯...实际上你为什么使用了两个<str>标签? - stay_hungry
我在ASP.NET中获取Solr搜索引擎的响应,结果内容是XML格式。由于无法更改它,因此我想要获取其中的内容。可以吗? - Ali Ahmadi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接