1

私は 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" />

3 行目の Node に注意してくださいenabled=False

コードを使用しています

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

これはエラーをスローします..

4

1 に答える 1

3

select f.Attribute("Value").Valuenullチェックを行わないと、要素に属性がない場合に例外がスローされるため、値をnullチェックする必要がありValueます。

サンプルXMLを見ると、すべてNodesが属性を持っているわけではありませんValue

代わりにこれを試してください:

var values = (from f in doc.Descendants("Node")
              where f.Attribute("Value") != null
              select f.Attribute("Value").Value).ToArray();
于 2012-04-27T11:37:36.297 に答える