C#でxmlの作成を行ったので方法を残す
#属性のあるxml要素の構築
要素はXElement、属性はXAttributeを使う
xml.cs
XElement element =
new XElement("person",
new XElement("person",
new XAttribute("Type", "engineer"),
new XElement("Name", "Yamada Taro"),
new XElement("skill",
new XElement("language", "C#")
)
)
);
xml出力したもの
test.xml
<person>
<person Type="engineer">
<Name>Yamada Taro</Name>
<skill>
<language>C#</language>
</skill>
</person>
</person>
#namesapceがある場合
XNamespaceでnamespaceを定義する
XNamespace ns= "http://www.test";
xml2.cs
XElement element =
new XElement("person",
new XAttribute(XNamespace.Xmlns + "ns", ns),
new XElement("person",
new XAttribute("Type", "engineer"),
new XElement(ns + "Name", "Yamada Taro"),
new XElement("skill",
new XElement("language", "C#")
)
)
);
xml出力したもの
test2.xml
<person xmlns:ns="http://www.test" >
<person Type="engineer">
<ns:Name>Yamada Taro</Name>
<skill>
<language>C#</language>
</skill>
</ns:person>
</person>
#既存のxmlに要素を追加する場合
要素を追加したいxmlを読み込み、追加したい位置を指定
XElement xml = XElement.Load(test.xml);
XElement child1 = xmlTree.Element("Name");
child1.AddAfterSelf(
new XElement("ID", 10)
);
Nameの後ろにIDが追加される
test.xml
<person>
<person Type="engineer">
<Name>Yamada Taro</Name>
<ID>10</Id>
<skill>
<language>C#</language>
</skill>
</person>
</person>