Я пытаюсь получить внутренний текст каждого узла домена из ответа httpxml. Я сохраняю ответ в строку и загружаю в XmlDocument
. Но, используя приведенный ниже код или его варианты, я получаю либо «CorpDomainMyDomain aaaa», либо просто «CorpDomain aaaa». Я пробовал различные итерации домена и доменов и не могу получить домены по отдельности. я бы подумал, что
XmlNodeList elemList = xmlDoc.SelectNodes("//DAV:domains", nsmgr);
создал бы список каждого из элементов домена, но это не так.
XML:
<?xml version="1.0" encoding="UTF-8" ?>
<multistatus xmlns="DAV:">
<response>
<propstat>
<prop>
<domains>
<domain logindefault="1" type="internal"><![CDATA[CorpDomain]]></domain>
<domain type="internal"><![CDATA[MyDomain]]></domain>
</domains>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
My code snippet
var nsmgr = new XmlNamespaceManager(xmlDoc.NameTable);
nsmgr.AddNamespace("DAV", "DAV:");
XmlNodeList elemList = xmlDoc.SelectNodes("//DAV:domains", nsmgr);
foreach (XmlNode node in elemList)
{
strNode = node.SelectSingleNode("//DAV:domains", nsmgr).InnerText;
responseString = strNode+" aaaa ";
}
return responseString;
responseString
на каждой итерации цикла:responseString = strNode+" aaaa ";
. Вы уверены, что не имели в виду, например.responseString = responseString + strNode + ...;
? - person Iain Galloway   schedule 19.02.2018CorpDomainMyDomain aaaa
. Я пояснил это в своем ответе - т. Е. Нет, пожалуйста, не закрывайте как опечатку - неправильный путь к корневому уровню в цикле является распространенной проблемой при анализе документа Xml, и это может быть полезно для будущих читателей. - person StuartLC   schedule 22.02.2018