Как проанализировать строку (LINQ to XML)
В этой статье показано, как проанализировать строку для создания xml-дерева в C# и Visual Basic.
Пример
В следующем коде 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))
См. также
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру