ファイルの最後に移動して1行戻ることは可能ですか?
確かにそうですが、そうすることは非常に危険です。これは、XMLファイルがどのように記述されているかを前提としています。これも同様に有効なXMLです。
<?xml version="1.0" encoding="utf-8"?>
<list><item><name>Item 1</name><due>Tomorrow</due></item><item><name>Item 2</name><due>Thursday</due></item></list>
今ではもう少し複雑になります。代わりに、XMLパーサーを使用し、XMLファイルを解析し、XMLのドキュメントオブジェクトモデル(DOM)を操作して、保存し直す必要があります。あなたはそのようにそれをすることができます:
Dim document As XDocument = XDocument.Load("pathtoxmlfile.xml")
Dim root = document.Root
root.Add(
New XElement("item",
New XElement("name", "Item 3"),
New XElement("due", "Friday"))
)
document.Save("pathtoxmlfile.xml")
これは、フレームワークのXDocument
クラスを利用します。これは、XMLファイルのオブジェクトモデルを簡単に操作するための優れたツールです。
特定のノードを選択して削除するにはどうすればよいですか?
LINQ-to-XMLを使用して、削除するクエリを記述できます。LINQクエリを記述して必要な要素を選択し、を使用するだけですRemove()
。追加したアイテムを削除する例を次に示します。
Dim document As XDocument = XDocument.Load("pathtoxmlfile.xml")
Dim root = document.Root
Dim deleteThese = From e In root.Elements("item") Where e.Element("name").Value = "Item 3"
If deleteThese.Any() Then
deleteThese.Remove()
document.Save("pathtoxmlfile.xml")
End If