xml文件的一部分:
<publisher>
<name>ABC</name>
<id>943</id>
</publisher>
C#:
string publisher = n.SelectSingleNode(".//publisher").InnerText;
Console.WriteLine(publisher + "\n");
c#程序从xml文件中读取文本。我遇到的问题是publisher
的字符串值为ABC943
。有没有办法只返回字符串值ABC
?
好的,谢谢你的回答。我有另一个问题!!!让我们说:
<publisher>
<name>ABC</name>
<id>943</id>
</publisher>
<publisher>
<name>DEF</name>
<id>3453</id>
</publisher>
C#代码:
string publisher = n.SelectSingleNode(".//publisher//name").InnerText;
Console.WriteLine(publisher + "\n");
现在,这只会阅读ABC。我该怎么做才能让它读到ABC,DEF?出版商的数量可能会有所不同..
答案 0 :(得分:3)
publisher = n.SelectSingleNode(".//publisher//name").InnerText;
Console.WriteLine(publisher + "\n");
对于多个节点,请使用XmlNode.SelectNodes:
XmlNodeList xnl = n.SelectNodes(".//publisher//name");
foreach(XmlNode xn in xnl)
{
Console.WriteLine(xn.InnerText + "\n");
}
答案 1 :(得分:0)
另一种解决方案:
publisher = n.SelectSingleNode("//publisher/name/text()");
Console.WriteLine(publisher + "\n");
另外,你不需要。在xpath的开头。 “//”也会把你带到文档的根目录。
在回答您的第二个问题时,如果您只想要第一个“名称”,请使用此xpath:
//publisher/name[1]/text()