使用属性读取XML的最简单方法

时间:2011-01-25 18:28:53

标签: c# .net xml

我有一个我想阅读的XML文件(使用xml atrributes)。结构不会改变,但内容会改变。

示例XML:http://www.yr.no/place/Norway/Oslo/Oslo/Oslo/forecast.xml (必须手动将URL复制并粘贴到地址栏中,否则您将获得404.)

我无法使用此代码(并使用XSD.EXE)从中制作XSD:

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转换错误消息是什么意思?

3 个答案:

答案 0 :(得分:2)

如果您要处理XML属性,那么为什么不将xml加载到XmlDocument中。然后,您可以访问各种节点和属性。

答案 1 :(得分:2)

是的,使用Linq。我没有任何示例代码,但这个链接应该让你开始。

http://www.hookedonlinq.com/LinqToXML5MinuteOVerview.ashx

答案 2 :(得分:1)

要回答关于Xsd.exe错误的最后一点,它存在多个位置元素的问题。如果您保存xml并将第一个 location 元素重命名为 baselocation ,那么它将转换为okay。

然后,您可以手动修改xsd或生成的类来处理此问题。