在C#中读取XML文件

时间:2014-08-18 23:50:16

标签: c# xml

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?出版商的数量可能会有所不同..

2 个答案:

答案 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()