it-swarm-vi.com

Làm cách nào tôi có thể tìm thấy một nút cụ thể trong XML của mình?

Tôi phải đọc "tên" nút xml từ XML sau, nhưng tôi không biết làm thế nào để làm điều đó.

Đây là XML:

<?xml version="1.0" standalone="yes" ?>
  <games>
    <game>
      <name>Google Pacman</name>
      <url>http:\\www.google.de</url>
    </game>
  </games>

Mã số:

using System.Xml;

namespace SRCDSGUI
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(Application.StartupPath + @"\games.xml");


            XmlElement root = doc.DocumentElement;
            XmlNodeList nodes = root.SelectNodes("//games");

            foreach (XmlNode node in nodes)
            {
                listBox1.Items.Add(node["game"].InnerText);
            }


        }
    }
}
8
Jan W

Có thể thử cái này

XmlNodeList nodes = root.SelectNodes("//games/game")
foreach (XmlNode node in nodes)
{
    listBox1.Items.Add(node["name"].InnerText);
}
13
Krishna

Bạn thực sự rất thân thiết - bạn đã tìm thấy nút trò chơi, tại sao bạn không tiến thêm một bước và chỉ lấy nút tên nếu nó tồn tại như một đứa trẻ trong trò chơi?

trong mỗi vòng lặp của bạn:

listBox1.Items.Add(node.SelectSingleNode("game/name").InnerText);
2
Ryan Bennett

Hoặc thử điều này:

XmlNodeList nodes = root.GetElementsByTagName("name");
for(int i=0; i<nodes.Count; i++)
{
listBox1.Items.Add(nodes[i].InnerXml);
}
1
hx_9009

Dưới đây là một ví dụ về hàm đơn giản tìm và tìm nạp hai nút cụ thể từ tệp XML và trả về chúng dưới dạng mảng chuỗi

private static string[] ReadSettings(string settingsFile)
    {
        string[] a = new string[2];
        try
        {
            XmlTextReader xmlReader = new XmlTextReader(settingsFile);
            while (xmlReader.Read())
            {
                switch (xmlReader.Name)
                {
                    case "system":
                        break;
                    case "login":
                        a[0] = xmlReader.ReadString();
                        break;
                    case "password":
                        a[1] = xmlReader.ReadString();
                        break;
                }

            }    
            return a;
        }
        catch (Exception ex)
        {
            return a;
        }
    }
0
IgorM