這可能是一些非常簡單的,但我不能讓我的頭周圍這樣的幫助,將不勝感激:)問題在LINQ查詢使用.value的
我有,我想解析一個簡單的XML文件我訪問元素的值時遇到問題。
這是XML文檔,我有:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<application>
<description>
<![CDATA[ This is the description of the application. ]]>
</description>
<parameters>
<param type="int32" name="testvar1" required="false">10</param>
<param type="string" name="testvar2" required="true" />
<param type="float" name="testvar3">42.00</param>
</parameters>
</application>
我從一個文本框加載文檔,如:
var doc = XDocument.Parse(textBox1.Text);
而且我用一個簡單的LINQ查詢,以過濾掉的東西:
var parameters = from param in doc.Descendants("param")
select new
{
name = (String)param.Attribute("name"),
type = (String)param.Attribute("type"),
value = (String)param.Value, // Wrong?
};
var data = String.Empty;
foreach (var p in parameters)
{
data += p.name;
data += " -- ";
data += p.type;
data += " -- ";
data += p.value;
data += "\n\r";
}
輸出結果如下:
testvar1 -- int32 --
testvar2 -- string --
testvar3 -- float --
換句話說,行value = (String)param.Value
似乎沒有預期的效果。
編輯:這似乎是我沒有閱讀正確的XML文件,我的壞。下面的問題仍然是,雖然有效...
此外,下面的行會導致一個NullReferenceException:
var description = (String) doc.Element("description").Value;
所以看起來我不太明白如何讓XML元素的值:)你能幫我解決這些問題嗎?
謝謝。
謝謝你的答案,但有或沒有投我還沒有看到任何輸出。 – Hamza 2010-12-06 15:52:08
@Hamza:查看我的更新後文章 – abatishchev 2010-12-06 15:56:48