2011-01-25 74 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中。然后你可以访问各种节点和属性。