在 C# 中读取 XML 文件

本文关键字:XML 文件 读取 | 更新日期: 2023-09-27 18:18:29

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

在 C# 中读取 XML 文件

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");
}

另一种解决方案:

publisher = n.SelectSingleNode("//publisher/name/text()");
Console.WriteLine(publisher + "'n");

此外,您不需要在 xpath 的开头使用 .。"//"也将带您成为文档的根目录。

在回答你的第二个问题时,如果你只想要第一个"名称",那么请使用这个 xpath:

//publisher/name[1]/text()