Dataset ds=new DataSet();
ds.ReadXml("path of the xml");但是ds有多个表,我想分别提取页眉和页脚的详细信息:
XElement xElement = XElement.Parse(ds.GetXml().ToString());
var items =xElement
.Descendants("Header");上面的代码没有给出结果,而是返回为空的。
我怎样才能得到每个页眉和每页脚的详细信息标签的名称和数字标签?我可以使用ds.ReadXML分别创建两个数据集吗?
以下是我的XML:
<?xml version="1.0" encoding="UTF-8"?>
<Mapping>
<Header>
<Row>
<Details>
<Name>Name</Name>
<DataType>string</DataType>
<Value>Mark</Value>
</Details>
<Details>
<Name>Number</Name>
<DataType>int</DataType>
<Value>1</Value>
</Details>
</Row>
</Header>
<Footer>
<Row>
<Details>
<Name>Name</Name>
<DataType>string</DataType>
<Value>John</Value>
</Details>
<Details>
<Name>Number</Name>
<DataType>int</DataType>
<Value>2</Value>
</Details>
</Row>
</Footer>
</Mapping>数据集1:报头信息-这样我就可以遍历行了
数据集2:页脚信息-这样我就可以遍历行了
或者是否有其他方法单独提取名称和编号?这里的目标是获取数据并构建一个C#类,如
public class Header
{
public Header(){}
public string Name;
public int Number
}
public class Footer
{
public Footer(){}
public string Name;
public int Number
}发布于 2013-08-21 23:32:43
XElement mapping = XElement.Parse(ds.GetXml().ToString());
var query = from d in mapping.Descendants("Details")
select new {
Name = (string)d.Element("Name"),
Number = (int)d.Element("Number")
};如果您想构建类实例:
var headers = from d in mapping.Element("Header")
.Element("Row").Elements("Details")
select new Header {
Name = (string)d.Element("Name"),
Number = (int)d.Element("Number")
};获取脚注是一样的,但您应该首先选择"Footer"元素。
此外,还可以使用XPath来选择元素:
var headers = from d in mapping.XPathSelectElements("Header/Row/Details")
select new Header {
Name = (string)d.Element("Name"),
Number = (int)d.Element("Number")
};https://stackoverflow.com/questions/18369181
复制相似问题