以下我们用一个例子来说明:testResult.xml文件
<?xml version=1.0 encoding=utf-8 ?> <Columns> <column id=序号> <name>序号</name> </column> <column id=检验项目> <name>检验项目</name> </column> <column id=单位> <name>单位</name> </column> <column id=标准要求> <name>标准要求</name> </column> <column id=检验结果> <name>检验结果</name> </column> <column id=结论> <name>结论</name> </column> </Columns>
以上就是一个Xml文件,我们知道,Xml文件是用来存储数据的,那么我们如何遍历这些数据呢?
其实最简单的方法,就是使用Linq:
private void GetTestResultXml() { List<string> iTestResultXml=new List<string>(); //定义并从xml文件中加载节点(根节点) XElement rootNode = XElement.Load(@..\..\Xml\testResult.xml); //查询语句: 获得根节点下name子节点(此时的子节点可以跨层次:孙节点、重孙节点......) IEnumerable<XElement> targetNodes = from target in rootNode.Descendants(column) select target; foreach (XElement node in targetNodes) { iTestResultXml.Add(node.Value); } }
这样我们就可以获得 <column/> 标签里所有的数据了,并把他们存储到列表iTestResultXml中。
在testResult.xml文件中,我们看到, <column/> 标签设置了本身的id,而此id并不是他的数据,而是他的一个属性,
那么如果我们想获得他的属性而不是他标签里的内容该如何获得呢?
private void GetTestResultXml() { List<string> iXmlID = new List<string>(); //定义并从xml文件中加载节点(根节点) XElement rootNode = XElement.Load(@..\..\Xml\testResult.xml); //查询语句: 获得根节点下name子节点(此时的子节点可以跨层次:孙节点、重孙节点......) IEnumerable<XElement> targetNodes = from target in rootNode.Descendants(column) select target; foreach (XElement node in targetNodes) { iXmlID.Add(node.Attribute(id).Value); //获取指定属性的方法 } }
这样我们就获取了 <column/> 标签里id属性的列表iXmlID。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。