为什么ChildNodes返回带有空值的XmlNodeList

时间:2018-05-08 04:44:32

标签: uwp xmldocument

XmlNodeList NodeList = Node.ChildNodes; 

此处Node是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个子节点在这里,但是nodelist包含9个子节点(空白和原始值)

1 个答案:

答案 0 :(得分:0)

@Peter Torr - MSFT的猜测是正确的。 @Roshmi Benny我使用你的XML内容在我的UWP项目中创建一个xml文件,并使用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