0

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

            }
        }
4

3 回答 3

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 文件复制到此输出文件夹。

于 2012-07-27T09:22:59.613 回答
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);
于 2012-07-27T09:19:05.827 回答
-1

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

于 2012-07-27T09:22:16.747 回答