如何分析字符串 (LINQ to XML)
本文演示如何分析字符串,以便用 C# 或 Visual Basic 创建 XML 树。
示例
下面的 C# 代码演示如何分析 XML 字符串:
XElement contacts = XElement.Parse(
@"<Contacts>
<Contact>
<Name>Patrick Hines</Name>
<Phone Type=""home"">206-555-0144</Phone>
<Phone Type=""work"">425-555-0145</Phone>
<Address>
<Street1>123 Main St</Street1>
<City>Mercer Island</City>
<State>WA</State>
<Postal>68042</Postal>
</Address>
<NetWorth>10</NetWorth>
</Contact>
<Contact>
<Name>Gretchen Rivas</Name>
<Phone Type=""mobile"">206-555-0163</Phone>
<Address>
<Street1>123 Main St</Street1>
<City>Mercer Island</City>
<State>WA</State>
<Postal>68042</Postal>
</Address>
<NetWorth>11</NetWorth>
</Contact>
</Contacts>");
Console.WriteLine(contacts);
在 Visual Basic 中,可以以类似方式分析字符串。 但是,使用 XML 文本效率会更高(如下面的代码所示),因为使用 XML 文本不会像从字符串分析 XML 那样要牺牲性能。
通过使用 XML 文本,可以将 XML 复制和粘贴到 Visual Basic 程序中。
注意
分析文本或从文本文件加载 XML 文档比函数构造的效率更低。 如果要从代码初始化 XML 树,使用函数构造比分析文本所占用的处理器时间更少。
Dim contacts as XElement = _
<Contacts>
<Contact>
<Name>Patrick Hines</Name>
<Phone Type="home">206-555-0144</Phone>
<Phone Type="work">425-555-0145</Phone>
<Address>
<Street1>123 Main St</Street1>
<City>Mercer Island</City>
<State>WA</State>
<Postal>68042</Postal>
</Address>
<NetWorth>10</NetWorth>
</Contact>
<Contact>
<Name>Gretchen Rivas</Name>
<Phone Type="mobile">206-555-0163</Phone>
<Address>
<Street1>123 Main St</Street1>
<City>Mercer Island</City>
<State>WA</State>
<Postal>68042</Postal>
</Address>
<NetWorth>11</NetWorth>
</Contact>
</Contacts>
根 Contacts
节点具有两个 Contact
节点。 若要访问已分析的 XML 中的某些特定数据,请使用 XElement.Elements() 方法,在这种情况下,将返回根 Contacts
节点的子元素。 以下示例将第一个 Contact
节点输出到控制台:
List<XElement> contactNodes = contacts.Elements("Contact").ToList();
Console.WriteLine(contactNodes[0]);
Dim contactNodes As List(Of XElement) = contacts.Elements("Contact").ToList()
Console.WriteLine(contactNodes(0))