XML文档处理无法加载文件

时间:2012-07-27 09:16:39

标签: c# xml

我正在编写一个应用程序,我需要从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);

            }
        }

3 个答案:

答案 0 :(得分:5)

您的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 DirectoryCopy if newer的属性集中选择它。这样,每次编译项目时,VS都会自动将XML文件复制到此输出文件夹。

答案 1 :(得分:0)

您可以使用此代码

<?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);

答案 2 :(得分:-1)

<?xml version="1.0" encoding="utf-8"?>添加为XML文件中的第一行

相关问题