为什么我的XML文件显示像<tag>这样的标记?

时间:2017-03-15 11:37:48

标签: xml

这是我第一次编写XML文件而我想创建一个支持在xml文件中注册的应用程序。 对于数据库中的第一个人,我编写了以下代码:

  if (!File.Exists("clienti.xml"))
        {
            MemoryStream memStream = new MemoryStream();
            XmlTextWriter writer = new XmlTextWriter(memStream, Encoding.UTF8);
            writer.Formatting = Formatting.Indented;
            using (writer)
            {
                writer.WriteStartDocument();

                writer.WriteStartElement("clienti");
                writer.WriteStartElement("client" numarClienti.ToString());
                numarClienti++;


                writer.WriteStartElement("cnp");
                writer.WriteValue(textBox1.Text);
                writer.WriteEndElement();

                writer.WriteStartElement("nume");
                writer.WriteValue(textBox2.Text);
                writer.WriteEndElement();

                writer.WriteStartElement("prenume");
                writer.WriteValue(textBox3.Text);
                writer.WriteEndElement();

                writer.WriteStartElement("email");
                writer.WriteValue(textBox4.Text);
                writer.WriteEndElement();

                writer.WriteStartElement("parola");
                writer.WriteValue(textBox5.Text);
                writer.WriteEndElement();

                writer.WriteEndElement();
                writer.WriteEndElement();
            }
            writer.Close();

            string xml = Encoding.UTF8.GetString(memStream.ToArray());

            memStream.Close();

            StreamWriter sw = new StreamWriter("clienti.xml");
            sw.WriteLine(xml);
            sw.Close();
        }

当第二个人试图注册时出现问题。我试图用if的第一个子句中使用的类编写代码,但我不能。 这是我的解决方案:

{
      XDocument doc = XDocument.Load("clienti.xml");
                XElement nodPersoanaNoua = new XElement("client1");


              nodPersoanaNoua.Add(new XElement("nume"),new XAttribute("nume","Ionica"),new XElement("nume","georgica"));

                doc.Descendants("clienti").Single().Add(nodPersoanaNoua);
                doc.Save("clienti.xml");
            }
My problem is that in my document a tag like <tag/>.




<client1 nume="Ionica">
   <nume />
   <nume>georgica</nume>
   </client1>.

为什么它看起来像这样?是否在第一个分支中编写第二个分支的方法是什么?

1 个答案:

答案 0 :(得分:0)

new XElement("nume")创建一个名为nume的空元素,此类空元素的标记表示为<nume/><nume></nume><nume />。您没有解释您想要的结果,但是您使用new XElement("nume","georgica")的其他方法创建了包含文字内容<nume>georgica</nume>的元素。