用XML结点的属性值查找相同结点的其它属性值[C#]
2009-09-04 16:23
316 查看
实现功能:
用XML结点的属性值查找相同结点的其它属性值,即如下的xml,输入一个001,能得出FistTag_Value这个值来.
1)首先,把下面的xml文档存在D盘目录下,命名为:Test.xml,xml文档内容如下
//-------------------------------------xml文档分割线----------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<HeadData>
<Item>
<SystemType>0</SystemType>
<tag Entrytag="001" NodeName="FistTag_Value">
<FistNode>0001</FistNode>
<SecondNode>0001</SecondNode>
</tag>
</Item>
<Item>
<SystemType>0</SystemType>
<tag Entrytag="002" NodeName="SecondTag_Value">
<FistNode>0002</FistNode>
<SecondNode>0002</SecondNode>
</tag>
</Item>
<Item>
<SystemType>0</SystemType>
<tag Entrytag="003" NodeName="ThirdTag_Value">
<FistNode>0003</FistNode>
<SecondNode>0003</SecondNode>
</tag>
</Item>
</HeadData>
//-------------------------------------xml文档分割线----------------------------------------------
2)代码实现,注释都写得很清楚了,我就不细说了
用XML结点的属性值查找相同结点的其它属性值,即如下的xml,输入一个001,能得出FistTag_Value这个值来.
1)首先,把下面的xml文档存在D盘目录下,命名为:Test.xml,xml文档内容如下
//-------------------------------------xml文档分割线----------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<HeadData>
<Item>
<SystemType>0</SystemType>
<tag Entrytag="001" NodeName="FistTag_Value">
<FistNode>0001</FistNode>
<SecondNode>0001</SecondNode>
</tag>
</Item>
<Item>
<SystemType>0</SystemType>
<tag Entrytag="002" NodeName="SecondTag_Value">
<FistNode>0002</FistNode>
<SecondNode>0002</SecondNode>
</tag>
</Item>
<Item>
<SystemType>0</SystemType>
<tag Entrytag="003" NodeName="ThirdTag_Value">
<FistNode>0003</FistNode>
<SecondNode>0003</SecondNode>
</tag>
</Item>
</HeadData>
//-------------------------------------xml文档分割线----------------------------------------------
2)代码实现,注释都写得很清楚了,我就不细说了
using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.IO; namespace GetXmlInnerNodeValue { class Program { static void Main(string[] args) { Program p = new Program(); p.GetXmlInnerNode(); //Console.ReadKey(); } private void GetXmlInnerNode() { //定义XmlDocument对象Load xml文件 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(@"D:/Test.xml"); //取得总结点 XmlNode xmlNod = xmlDoc.SelectSingleNode(@"HeadData"); //string str = xmlNod["Item"].ChildNodes[1].Attributes[0].Value; //取得其所有子结点 XmlNodeList xnl = xmlNod.ChildNodes; //输入结点的两个属性 foreach (XmlNode xnf in xnl) { Console.WriteLine("所有Tag名及值为:" + xnf.ChildNodes[1].Attributes[0].Value+" : "+xnf.ChildNodes[1].Attributes[1].Value); } //下面为具体演示代码 Console.WriteLine("请输入您要查找的Tag名:"); string strInput=string.Empty; do { strInput = Console.ReadLine(); bool bFind = false; //定义一个bool看是否找到相应Tag值 for (int i = 0; i < xnl.Count; i++) { if (xnl[i].ChildNodes[1].Attributes[0].Value.Equals(strInput.Trim()))//如果找到相应Tag值 { Console.WriteLine("您查找的Tag的值为:" + xnl[i].ChildNodes[1].Attributes[1].Value); bFind = true; } if (!bFind && i == xnl.Count-1) //如果没有找到 { Console.WriteLine("没有找到相应的Tag,请重新输入:"); } } //输入e或E退出程序 } while (!strInput.Equals("E") && !strInput.Equals("e")); } } }
相关文章推荐
- asp.net C#对xml文档创建 修改 删除 查找
- C#之XML基础 为一个节点添加两个属性值
- C#中对 XML节点进行添加,删除,查找和删除操作
- 在c#中将dataset输出成xml内容的xls文件,解决其它输出不能在excel中显示“001”的前导0的问题
- C#中对 XML节点进行添加,删除,查找和删除操作
- [c#中的xml操作]-------1、新建xml文件并添加结点
- c#中xml文档注释编译dll引用到其它项目示例
- rapidxml查找结点内相同结点标签的内容
- c#面试题 查找整型数组中重复出现次数最多的数字,次数相同数字按从小到大排序
- 单链表的使用(插入,查找,删除,链表的倒置,删除相同结点)
- C#中操作XML文件(读写改删全接触) 跟其它语言操作XML差不多一样
- C# 读取xml中特定节点的属性值 xmldocument方式 【有些乱,但有思路】
- (C#) 操作XML之查找
- C#中XML文档注释编译DLL引用到其它项目
- C#通过xpath查找xml指定元素的方法
- C# 关于从List或Collection中找出对象的某个属性值与另一个list相同的全部对象
- 【.Net码农】C#如何判断XML结点xmldocSource.SelectSingleNode("dd") 是否存在
- c#环境XML文件创建、修改、删除、查找相关操作
- C# 通过XPath查询/搜索/查找XML
- 30天C#基础巩固----查找XML文件元素