3
喜新的XElement我有一個XML文件:添加數據類型屬性
<?xml version="1.0"?>
<TreeList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Columns>
<Column>
<ColumnName>123</ColumnName>
<ColumnType>Bound</ColumnType>
</Column>
</Columns>
<Nodes>
<Node Id="0" ParentId="-1">
<NodeData>
<Cell xsi:type="xsd:string">Node1</Cell>
</NodeData>
</Node>
<Node Id="1" ParentId="0">
<NodeData>
<Cell xsi:type="xsd:string">Node11</Cell>
</NodeData>
</Node>
</Nodes>
</TreeList>
,我需要增加新的XElement:
<Node Id="xx" ParentId="yy">
<NodeData>
<Cell xsi:type="xsd:string">NewNode</Cell>
</NodeData>
</Node>
我的問題是,在 「XSI:類型=」 XSD :?字符串的」的XElement的一部分,我怎麼能設置XAttribute這樣
我嘗試以下操作:
public static void AdNewNode(string filePath, string id, string parentId, string value)
{
XElement xml = XElement.Load(filePath);
XNamespace xsi = "http://www.w3.org/2001/XMLSchema-instance";
XNamespace xsd = "http://www.w3.org/2001/XMLSchema";
XAttribute attribute1 = new XAttribute(xsd + "string", string.Empty);
XAttribute attribute2 = new XAttribute(xsi + "type", attribute1.ToString());
XElement innerNode = new XElement("NodeData",
new XElement("Cell",attribute2, attribute1, value));
XElement elemnet = new XElement("Node", new XAttribute("Id", id), new XAttribute("ParentId", parentId), innerNode);
xml.Add(elemnet);
}
這是結果:
<Node Id="2" ParentId="1">
<NodeData>
<Cell p3:type="p0:string=""" p4:string="" xmlns:p4="http://www.w3.org/2001/XMLSchema" xmlns:p3="http://www.w3.org/2001/XMLSchema-instance">New Node</Cell>
</NodeData>
</Node>
有人能幫助我嗎?
感謝的它的工作就像一個魅力。 – user3569465
@ user3569465不客氣。不要忘記[接受](http://stackoverflow.com/help/someone-answers)然後回答 – har07