我有一些代碼使用XDocument
解析xml文件。如何從Xml檢索值而不是字符串?
它正確地檢索值,但是我保存到xml的一些值是Object
。所以,當我從XML閱讀這些價值觀,他們來爲string
值,即使我投他們作爲對象:
XDocument doc = XDocument.Load (file);
XElement xe = doc.Element ("EffectFile");
xe.Elements ("Options").Any ()
? xe.Elements ("Options").Select (
o => o.Elements ("Option").Select (
n => (object) n.Value).First ())
: null))
因爲它出現在XML中的值:
...
<Option>88</Option>
...
當屬"88"
,而不是Object 88
。
我明白,當我投了string
到Object
,它仍然是一個string
,但有沒有辦法讓它的實際價值(不管這可能是)的Object
而不是string
?
因爲這些都是不同的,是不是?:
object value = 88;
object value = (object) "88";
後來當我用我的options
值存儲爲object[]
,我希望能夠做到:
int intValue = (int) value;
謝謝,這很有道理。但是使用type =「」唯一的方法?我只想保存我的對象[]值的方式,而不是對象字符串值,但不管它們以前是什麼。所以爲此,我必須將這些類型存儲在xml中?在做「自動」xml序列化時,我注意到使用類似值 的序列化程序。也許他們是這樣做的? –
2011-03-01 19:41:28
Xml可以作爲文本文件寫入磁盤,因此如果未指定type,則無法通過任何程序從磁盤讀取它以知道它以前的類型。它不必是屬性 - 它可以是嵌套在value元素中的另一個元素,也可以是具有其他名稱的屬性,但需要向讀者提供一些提示。 – ajuc 2011-03-01 19:43:55
@Joan - 如果你從XML讀取它們,那麼它們將始終是字符串。 – 2011-03-01 19:46:13