這裏是我的XML:C#DataSet.ReadXml()省略了一些列
<notebooks>
<notebook>
<is-default type="boolean">true</is-default>
<name>James's notebook</name>
<id>MS4zfDEvMS9Ob3RlYm9va3wzLjM=</id>
</notebook>
<notebook>
<is-default type="boolean">false</is-default>
<name>James alternate notebook</name>
<id>NDQuMnwzNC8zNC9Ob3RlYm9va3wxMTIuMg==</id>
</notebook>
<notebook>
<is-default type="boolean">false</is-default>
<name>Notebook for James lab</name>
<id>NTMuM3w0MS80MS9Ob3RlYm9va3wxMzUuMw==</id>
</notebook>
</notebooks>
,我這樣做,我發現這裏的標準數據集負載:
DataSet ds = new DataSet();
ds.ReadXml(new StringReader(lcXMLSegment));
事情做工精細,除了「筆記本」表僅以列「名稱」和「ID」結束。除非我從每個元素中移除type =「boolean」,否則「is-default」列不會通過。
我試圖在執行ReadXml()之前創建一個DataTable模式,但這並沒有做任何事情,因爲我假設DataSet.ReadXml()重新創建數據集內的表。我還嘗試了ReadXml()上的各種第二個參數來讀取或推斷模式,並沒有區別(或引發錯誤)。
這個XML是從我想訪問的web API返回的,並根據自定義編程,所以我無法控制XML的本地結構。任何幫助將不勝感激,告訴我我失蹤了。我很好,如果「is-default」字段不能作爲類型布爾值來拉入,因爲我可以處理所有字符串類型的數據。我也很好地爲從XML載入的任何數據創建完整模式,但我不知道在這種情況下我會在哪裏或如何做。
謝謝!
在這種情況下,DataSet.ReadXml返回2個表。帶有'name'和'id'列的表[0]。和列[type]和'is-default_Text'的表[1]。 –
謝謝!這有幫助!我已經採取了使用Replace()從標籤中刪除任何「無關的」屬性。任何方式來告訴ReadXml()忽略那些東西?我想我可以使用表1中的數據將列添加回表0,但這聽起來像是一種痛苦。雖然可能我應該學習的東西。 – sutekh137