XML chooseinglenode我如何过滤标签?

时间:2013-08-23 21:06:56

标签: c# xml if-statement tags selectsinglenode

我开始用C#编程,我是初学者,所以我没有经验。我希望有一天能成为一名专业人士并开始开发解决方案。我的程序将信息保存在xml文件中,然后在同一个xml中读取相同的信息。 xml文件具有此格式

<Dados>
  <Nome>Vitor Emanuel Macedo Ferreira</Nome>
  <Sexo>M</Sexo>
  <Idade>22</Idade>
  <Peso>86</Peso>
  <Altura>1.87</Altura>
</Dados>

在C#代码中,我的解决方案有:

OpenFileDialog ofd = new OpenFileDialog();
        ofd.Filter = "XML|*.xml";
        ofd.FileName = ("c:\\xml\\data.xml");
        if (ofd.ShowDialog() ==  DialogResult.OK)
        {
            XmlDocument xDoc = new XmlDocument();
            xDoc.Load(ofd.FileName);
            xDoc.SelectSingleNode("Dados");
            if (ofd.FileName == "c:\\xml\\data.xml" &&  xDoc.SelectSingleNode(string.Empty) == xDoc.SelectSingleNode("Dados"))
            {


                    label8.Show();
                    textBox1.Hide();
                    textBox2.Hide();
                    textBox3.Hide();
                    radioButton1.Hide();
                    radioButton2.Hide();
                    label1.Hide();
                    label2.Hide();
                    label3.Hide();
                    label4.Hide();
                    label5.Hide();



            }
            else if (ofd.FileName == "c:\\xml\\data.xml" && xDoc.SelectSingleNode("") != xDoc.SelectSingleNode("Dados"))
            {
                MessageBox.Show("XML in incorrect path please put your xml file in c:\\xml");
            }



            }

如何过滤xml文件的内容,尤其是标记。我需要我的解决方案读取xml文件,当他读取标签时,他应该能够通过Messagebox说“错误标签不等于”,否则如果标签等于他必须继续

2 个答案:

答案 0 :(得分:1)

您希望使用XPath来导航XML文档。

有关于在C#here.

中使用它的指南

答案 1 :(得分:1)

检查一下:

 XmlDocument doc = new XmlDocument();
 doc.Load(ofd.Filename);

现在使用XmlNode遍历节点:

 XmlNode rootNode = doc.SelectSingleNode("Dados");

以这种方式检索其他节点:

 XmlNode nomeNode = rootNode.SelectSingleNode("Nome");
 XmlNode saxoNode = rootNode.SelectSingleNode("Saxo");

这应该给你一个开始。