2012-04-27 2 views
1

私はxml文字列を持っています。ノードが有効な状態で文字列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行目のノードenabled=Falseに注意してください。

私はコード

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

、これはエラーをスローします..あなたは、あなたがnullのチェックを行わずselect f.Attribute("Value").Valueを行う場合ならば、それは例外がスローされますので、値をチェックnullに必要

答えて

3

を使用しています要素にはValue属性がありません。

サンプルXMLをすべて見るわけではないNodesの属性はValueです。

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

var values = (from f in doc.Descendants("Node") 
       where f.Attribute("Value") != null 
       select f.Attribute("Value").Value).ToArray(); 
関連する問題