почему ChildNodes возвращает XmlNodeList с пустыми значениями - PullRequest
0 голосов
/ 08 мая 2018
XmlNodeList NodeList = Node.ChildNodes; 

здесь Узел является объектом IXmlNode. ChildNodes () повторяет NodeList с альтернативными пустыми значениями и оригинальными значениями.

XML-файл

<?xml version="1.0" encoding="UTF-8"?>
<Service>
<Name Value="122" ValueType="string"/>
<Number Value="1222" ValueType="long"/>
<ApplicationName Value="Service" ValueType="string"/>
<Count Value="10" ValueType="long"/>
</Service>

На самом деле здесь 4 дочерних узла, но список узлов содержит 9 дочерних узлов (пустые и оригинальные значения)

1 Ответ

0 голосов
/ 09 мая 2018

@ Питер Торр - догадка MSFT оказалась верной. @Roshmi Benny Я использовал ваш XML-контент для создания XML-файла в своем проекте UWP и использую Windows.Data.Xml.Dom.XmlDocument соответствующих API для загрузки этого XML-файла, затем я также получил 9 дочерних узлов в мой код Но есть пять пробельных узлов (\n) в нем. Вы можете установить XmlLoadSettings.ElementContentWhiteSpace=false, чтобы отключить его.

См. Следующий пример кода:

StorageFile file = await Package.Current.InstalledLocation.GetFileAsync("XMLFile1.xml");
XmlLoadSettings settings = new XmlLoadSettings();
settings.ElementContentWhiteSpace = false;
Windows.Data.Xml.Dom.XmlDocument xmlDocument = await Windows.Data.Xml.Dom.XmlDocument.LoadFromFileAsync(file,settings);
XmlNodeList xmlNodes = xmlDocument.GetElementsByTagName("Service");
foreach (var element in xmlNodes)
{
    XmlNodeList nodes = element.ChildNodes;
    foreach (var node in nodes)
    {
        //TODO:......
    }
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...