XML Literals and LINQ to XML
Axis properties: .<child>, ...<descendant>, .@attribute, .Value, indexers (0).
XML literals are a great fit for config generation, reports, SOAP payloads, and HTML/XAML templating.
Security: when loading untrusted XML, use XmlReaderSettings with DtdProcessing = DtdProcessing.Prohibit.
Imports <xmlns:p="urn:shop:products">
Dim catalog = <?xml version="1.0"?>
<p:catalog updated=<%= Date.UtcNow.ToString("o") %>>
<%= From pr In products
Order By pr.Name
Select <p:product sku=<%= pr.Sku %>>
<p:name><%= pr.Name %></p:name>
<p:price currency="USD"><%= pr.Price %></p:price>
</p:product> %>
</p:catalog>
catalog.Save("catalog.xml")
Dim doc = XDocument.Load("catalog.xml")
Dim expensive = From x In doc...<p:product>
Where CDec(x.<p:price>.Value) > 100
Select Sku = x.@sku, Name = x.<p:name>.Value
' Modify
For Each priceEl In doc...<p:price>
priceEl.Value = (CDec(priceEl.Value) * 1.1D).ToString("F2")
Next
doc.Root.Add(<p:product sku="NEW"><p:name>New</p:name><p:price>1</p:price></p:product>)