从启用了 false 节点的字符串 XML 中读取数据

本文关键字:XML 读取 数据 字符串 启用 false 节点 | 更新日期: 2023-09-27 18:32:29

>我有一个XML字符串,我想从中读取数据。

<?xml version="1.0" encoding="utf-16"?>
<Tree AllowNodeEditing="True" ShowLineImages="False" CheckBoxes="True"
      EnableAjaxSkinRendering="False" AutoPostBackOnCheck="True" AutoPostBack="True">
  <Node Enabled="False" Text="Geen afbeeldingen aanwezig" 
        Checked="True" Selected="True" thumb="" tekst="" />
  <Node Text="IMG_2807 (Small).JPG" 
        Value="../../CMS/Images/Fotogalerie/552/IMG_2807 (Small).JPG" tekst="Afbeelding IMG_2807 (Small).JPG" 
        thumb="../../CMS/Images/Thumbs/552/IMG_2807 (Small).JPG" />

请注意,在第三行节点enabled=False 中。

我正在使用代码

 XDocument doc = XDocument.Parse(strFile);
                    var values = (from f in doc.Elements().Descendants()
                                  select f.Attribute("Value").Value).ToArray();

这抛出了一个错误..

从启用了 false 节点的字符串 XML 中读取数据

您需要

null 检查该值,因为如果您在没有 null 检查的情况下执行select f.Attribute("Value").Value,如果元素没有 Value 属性,它将引发异常。

查看示例 XML,并非所有 Nodes都具有属性 Value

试试这个:

var values = (from f in doc.Descendants("Node")
              where f.Attribute("Value") != null
              select f.Attribute("Value").Value).ToArray();