2011-01-25 117 views
3

我有一個XML文件,我想閱讀(使用xml atrributes)。結構不會改變,但內容確實如此。使用屬性讀取XML的最簡單方法

示例XML:http://www.yr.no/place/Norway/Oslo/Oslo/Oslo/forecast.xml (URL必須被複制和手動粘貼到地址欄,或者你會得到一個404似乎)

我無法使用此代碼從它使一個XSD(並使用XSD.EXE):

XmlTextReader myXmlTextReader = new XmlTextReader("forecast.xml"); 
DataSet myDataSet = new DataSet(); 
myDataSet.ReadXml(myXmlTextReader); 
myDataSet.WriteXmlSchema("forecast.xsd"); 

結果:

Column name 'name' is defined for different mapping types.

現在,假設我在最重要的是懶惰,不喜歡花我的整個晚上手動將XML映射到我的對象。我希望爲我生成託管代碼對象,以便我可以輕鬆讀取數據。

我有什麼選擇?

...如果有人知道,XSD轉換錯誤信息是什麼意思?

+0

我得到一個404鏈接後 - 你可以發佈一個小的樣本再現錯誤的XML? – Cameron 2011-01-25 18:37:41

+1

「屬性」是指XML屬性嗎?我懷疑不是。在這種情況下,您可能應該將標題改爲「自動從XML創建XSD」。但直到我們可以看到你的代碼,我們不知道問題 – 2011-01-25 18:40:24

+0

@Cameron我也得到了一個404 – 2011-01-25 18:40:51

回答

1

要回答你的最後一點關於XSD.EXE錯誤,它具有多重位置元素的問題。如果保存xml並將第一個位置元素重命名爲基地點,那麼它將轉換成好的。

然後,您可以手動修改xsd或生成的類來處理此問題。

2

如果你追求XML屬性,那麼爲什麼不把XML加載到XmlDocument中。然後你可以訪問各種節點和屬性。