В моем приложении я получаю XML Response
, и я пытаюсь преобразовать этот ответ XML, используя XmlNode
.XML-анализ с использованием XmlNode
Мой XML-файл: File
XML-контента будет как:
<account name="[email protected]" id="876e6b55-5a9c-44ff-a418-af737c47d2af">
<a n="mobile">91 998977245009</a>
<a n="zimbraMailDeliveryAddress">[email protected]</a>
<a n="zimbraPrefIMLogChats">TRUE</a>
</account>
<account name="[email protected]" id="ce91d3bf-83b8-4a55-a92e-2e080fa4a21b">
<a n="zimbraMailDeliveryAddress">[email protected]</a>
<a n="zimbraPrefShowSearchString">FALSE</a>
<a n="zimbraPrefIMLogChats">TRUE</a>
</account>
Здесь я показываю два примера счета из этого XML-ответ, и мне нужно Переберите все account nodes
и получить zimbraMailDeliveryAddress
, который, несомненно, будет доступен в каждом узле, а также значение mobile
значения элемента ('91 998977245009')
, которое может быть недоступно в каждом узле (т. е. тег вообще не будет доступен).
Есть ли способ получить эти значения?
Я попытался с помощью XmlNamespaceManager
так:
XmlNamespaceManager mgr = new XmlNamespaceManager(doc.NameTable);
mgr.AddNamespace("bc", "urn:zimbraAdmin");
XmlNode result = doc.SelectSingleNode("//bc:account", mgr);
if (result != null)
{
Console.WriteLine("Found {0}.", result.InnerText);
}
else
{
// handle case that no element was found
Console.WriteLine("No element found.");
}
Но с помощью этого кода, я получаю только first account node
данные, и я не смог перебрать all account nodes
.
Может ли кто-нибудь мне помочь?
Может быть, '' SelectNodes' вместо SelectSingleNode'? – splash58