|
分類:[.NET 全般]
お世話になっております。
XMLのノードの値になにも入れない状態に値を変更したいのですが、どのようにすれ
ばよいでしょうか?
@のように最初に書き込む際はうまくいくのですが、Aのように値を変更した場合
はうまくいきません。変更した場合でも@と同様のようにXMLに記述されるようにし
たいのですが、どうすればよいでしょうか?
Aの場合だと読み込む際に改行+空白が入ってしまって困っています。
@writer.WriteElementString("TEST1", "");
XMLの記述のされ方:
<TEST1 />
AnodeList.Item(1).InnerText = "";
XMLの記述のされ方:
<TEST2>
</TEST2>
ご教授、アドバイス等宜しくお願いします。
-----------------
以下簡略したソース
private void WriteXml_Click(object sender, EventArgs e)
{
WriteFile();
}
/// <summary>
/// 書込み
/// </summary>
private void WriteFile()
{
XmlTextWriter writer = new XmlTextWriter(@"C:\TEST.xml", System.Text.Encoding.GetEncoding("Shift_Jis"));
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
writer.WriteStartDocument(true);
writer.WriteStartElement("AAA");
writer.WriteElementString("TEST1", "");
writer.WriteElementString("TEST2", "22");
writer.WriteElementString("TEST3", "33");
writer.WriteEndElement();
writer.Close();
}
private void ChgXml_Click(object sender, EventArgs e)
{
ChangeFile();
}
public void ChangeFile()
{
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load(@"c:\TEST.xml");
XmlElement rootElement = doc.DocumentElement;
XmlNodeList rootList = rootElement.SelectNodes("/AAA");
XmlNodeList nodeList = rootList.Item(0).ChildNodes;
nodeList.Item(1).InnerText = "";
doc.Save(@"c:\TEST.xml");
}
-----------------
以下作成されたXMLファイル
//変更前
<?xml version="1.0" encoding="shift_jis" standalone="yes"?>
<AAA>
<TEST1 />
<TEST2>22</TEST2>
<TEST3>33</TEST3>
</AAA>
//変更後
<?xml version="1.0" encoding="shift_jis" standalone="yes"?>
<AAA>
<TEST1 />
<TEST2>
</TEST2>
<TEST3>33</TEST3>
</AAA>
|