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 DirectoryますCopy 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 に答える