0
解析这个不寻常的xml文档的最佳方法是什么?解析XML文档(使用不寻常的格式)C#
部分XML的:
<?xml version="1.0" encoding="UTF-8"?>
<dataset xmlns="http://developer.cognos.com/schemas/xmldata/1/"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
<metadata>
<item name="AsOfDate" type="xs:string" length="12"/>
<item name="RateOfReturn" type="xs:double"/>
<item name="FamAcctIndex" type="xs:string" length="3"/>
<item name="RowID" type="xs:string" length="1"/>
<item name="BrM" type="xs:string" length="1"/>
<item name="ProductLineCode" type="xs:int"/>
</metadata>
<data>
<row>
<value>Apr 26, 2002</value>
<value>0.210066429</value>
<value>JA1</value>
<value>F</value>
<value>B</value>
<value>1</value>
</row>
<row>
<value>Apr 27, 2002</value>
<value>0.1111111</value>
<value>BBB</value>
<value>G</value>
<value>B</value>
<value>2</value>
</row>
</data>
</dataset>
当我说的不寻常的XML文档,我的意思是我从未有过解析的数据/行的东西。这是我通常会看到:
<person gender="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
我打算用:
var xmlDoc = new XmlDocument();
xmlDoc.Load(stream);
//parse here
但想我会想知道之前做到这一点的最好办法入门,因为它是一个非常大的文件。
编辑:
这是最好的方法吗?
var xml = XElement.Load(@"C:\Users\nunya\Desktop\example.xml").Element(XName.Get("data", "http://developer.cognos.com/schemas/xmldata/1/"));
var row = XName.Get("row", "http://developer.cognos.com/schemas/xmldata/1/");
var value = XName.Get("value", "http://developer.cognos.com/schemas/xmldata/1/");
if (xml != null)
{
foreach (var rowElement in xml.Elements(row))
{
foreach (var valueElement in rowElement.Elements(value))
{
//valueElement.Value is what i need
}
}
}
谢谢!
您是否曾经使用过由集合中的多个元素组成的XML?如果是这样,这真的没有什么不同。 –
BoltClock
你应该使用'XElement'。 – SLaks
这个XML可能是通过序列化一个DataTable或类似的东西而创建的。 –