我正在编写一个应用程序,其中需要从XML文档中提取信息。
我的XML文档存储在我的项目bin/ Debug文件中。
我不能让它工作。
名为informationData的XML文档:
<xml>
<information>
<name >stian</name>
<surname>Kruger</surname>
<tel>0825514302</tel>
<photo>1234JLJ.jpg</photo>
</information>
</xml>我的呼叫码:
private void btnReadXML_Click(object sender, EventArgs e)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("informationData.xml");
XmlNodeList dataNodes = xmlDoc.SelectNodes("/information");
foreach (XmlNode node in dataNodes)
{
Name = node.SelectSingleNode("name").InnerText;
Surname = node.SelectSingleNode("surname").InnerText;
TelNumber = Convert.ToInt32(node.SelectSingleNode("tel").InnerText);
}
}发布于 2012-07-27 17:23:00
您的XPath选择器错误。替换:
XmlNodeList dataNodes = xmlDoc.SelectNodes("/information");通过以下方式:
XmlNodeList dataNodes = xmlDoc.SelectNodes("//information");或通过以下方式:
XmlNodeList dataNodes = xmlDoc.DocumentElement.SelectNodes("information");还要确保XML文件与正在运行的可执行文件(您说的是bin/Debug/informationData.xml)位于同一文件夹中。如果XML文件是您的Visual Studio项目的一部分,您可以选择它,并在属性中将Copy to Output Directory设置为Copy if newer。这样,每次编译项目时,VS都会自动将XML文件复制到此输出文件夹中。
发布于 2012-07-27 17:19:06
您可以使用以下代码
<?xml version="1.0" encoding="utf-8" ?>
<information>
<name >stian</name>
<surname>Kruger</surname>
<tel>0825514302</tel>
<photo>1234JLJ.jpg</photo>
</information>
var xmlDoc = XDocument.Load("informationData.xml");
var name = xmlDoc.Element("name").Value;
var surname = xmlDoc.Element("surname").Value;
var telNumber = Convert.ToInt32(xmlDoc.Element("tel").Value);发布于 2012-07-27 17:22:17
将<?xml version="1.0" encoding="utf-8"?>添加为XML文件中的第一行
https://stackoverflow.com/questions/11684875
复制相似问题