//ファイル名、タグ名、属性名、属性値で一致するものを削除
public void DeleteXMLElementByAttributeValue(string xmlFiles, string tagName, string attName,string attValue)
{
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
// XMLファイルを読み込む
xmlDoc.Load(xmlFiles);
//ルート要素を取得する
System.Xml.XmlElement rootElement = xmlDoc.DocumentElement;
//ルート要素の子要素である"zip"を取得する
System.Xml.XmlNodeList nodelist = rootElement.GetElementsByTagName(tagName);
//指定した"<tagName>"タグが存在するか?
if (nodelist.Count > 0)
{
foreach (System.Xml.XmlElement item in nodelist)
{
//<Tag name="AAAA">で検索
if (attValue == item.GetAttribute(attName))
{
//zipタグを削除する
rootElement.RemoveChild(nodelist.Item(0));
break;
}
}
}
//ファイルに保存する
xmlDoc.Save(xmlFiles);
}
private void button2_Click(object sender, EventArgs e)
{
DeleteXMLElementByAttributeValue(@"sample.xml", "DataInfoAry", "name", "unko");
}
//===============================================================
//serializer.Serialize と
//===============================================================
//保存先のファイル名
string fileName = @"sample.xml";
//保存するクラス(SampleClass)のインスタンスを作成
SampleClass obj = new SampleClass();
obj.Message = "テストです。";
obj.Number = 123;
DataInfo[] di = new DataInfo[10];
obj.DataInfoAry = di;
//XmlSerializerオブジェクトを作成
//オブジェクトの型を指定する
System.Xml.Serialization.XmlSerializer serializer =
new System.Xml.Serialization.XmlSerializer(typeof(SampleClass));
//書き込むファイルを開く
System.IO.FileStream fs = new System.IO.FileStream(
fileName, System.IO.FileMode.Create);
//シリアル化し、XMLファイルに保存する
serializer.Serialize(fs, obj);
//ファイルを閉じる
fs.Close();
0 件のコメント:
コメントを投稿