2017-06-16 54 views
0

我已經開始將我的設置寫入節點中,例如。編寫適當的xml缺失值白色節點

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中缺少一個結束屬性標記。

我必須更改哪些部分以完成缺失標記?

+0

我建議將'xmlDoc.AppendChild(rootNode);'移到'rootNode.AppendChild(userNode);'後面。 –

回答

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> 

您也可能想使用的,而不是XmlDocument的下一次的XDocument,因爲我認爲這使得創建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"))));