编写正确的xml缺失值white node

时间:2017-06-16 08:17:44

标签: c# xml xmlnode

我已经成功地在节点中编写我的设置。

XmlDocument xmlDoc = new XmlDocument();
XmlNode rootNode = xmlDoc.CreateElement("Propertise");
xmlDoc.AppendChild(rootNode);

XmlNode userNode = xmlDoc.CreateElement("Property");
XmlAttribute attribute = xmlDoc.CreateAttribute("default");
attribute.Value = "4.5";
userNode.Attributes.Append(attribute);
attribute = xmlDoc.CreateAttribute("amount");
attribute.Value = "4.5";
userNode.Attributes.Append(attribute);
attribute = xmlDoc.CreateAttribute("name");
attribute.Value = "some setting name";
userNode.Attributes.Append(attribute);
rootNode.AppendChild(userNode);

但是缺少XML中的end属性标记。          

我需要更改哪些内容才能完成丢失的标记?

1 个答案:

答案 0 :(得分:0)

它没有遗漏最终属性标签。它是自动关闭标记,因为它没有任何子节点。

<?xml version="1.0" encoding="utf-8"?>
<Propertise>
  <Property default="4.5" amount="4.5" name="some setting name" />
                                                                ^
                                                                |
                                                             It is closed here.
</Propertise>

一旦你在里面添加了一些子节点,它就会在另一行中有一个结束标记,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Propertise>
  <Property default="4.5" amount="4.5" name="some setting name">
    <OtherProperty />
  </Property>
</Propertise>

您可能还想在下次使用XDocument而不是XmlDocument,因为我认为它可以使创建xml文档更加简单:

XDocument doc = new XDocument(
 new XElement("Properties",
 new XElement("Property",
     new XAttribute("default", "4.5"),
     new XAttribute("amount", "4.5"),
     new XAttribute("name", "some setting name"))));