110,534
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace ConsoleApplication9
{
class Program
{
static void Main(string[] args)
{
XmlDocument Doc = new XmlDocument();
Doc.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?>"
+ "<rundefine>"
+ " <book>"
+ " <bookname>name1</bookname>"
+ " </book>"
+ " <book1>"
+ " <bookname>name2 </bookname>"
+ " <bookname2>name3 </bookname2>"
+ " <Colors>"
+ " <Color ID=\"1\">Red</Color>"
+ " <Color ID=\"2\">Green</Color>"
+ " </Colors>"
+ " </book1>"
+ "</rundefine>");
Console.WriteLine("book下的bookname值:" + Doc.SelectSingleNode("/rundefine/book/bookname").InnerText);
Console.WriteLine("book1下的bookname值:" + Doc.SelectSingleNode("/rundefine/book1/bookname").InnerText);
Console.WriteLine("book1下的bookname2值:" + Doc.SelectSingleNode("/rundefine/book1/bookname2").InnerText);
Console.WriteLine("book1/Colors下的属性ID=2的Color值:" + Doc.SelectSingleNode("/rundefine/book1/Colors/Color[@ID=2]").InnerText);
// 用遍历的方法
XmlNodeList Nodes = Doc.SelectNodes("/rundefine/book1/Colors/Color");
for (int i = 0; i < Nodes.Count; i++)
if (Nodes[i].Attributes["ID"].InnerText == "1")
{
Console.WriteLine("遍历book1/Colors/Color,第" + (i + 1).ToString() + "个Color:" + Nodes[i].InnerText);
break;
}
// 取子节点
XmlNode Node = Doc.SelectSingleNode("/rundefine/book1/Colors");
for (int i = 0; i < Node.ChildNodes.Count; i++)
Console.WriteLine("遍历book1/Colors的子节点,第" + (i + 1).ToString() + "个Color:" + Node.ChildNodes[i].InnerText);
Console.Read();
}
}
}
using System.Xml;
public class Test {
static void Main(string[] args) {
Test testObj = new Test();
string xPath = "/rundefine/book/bookname";
string result = testObj.ReadXmlNodeText(@"D:\Text.xml", xPath);
Console.WriteLine(result);
}
/// <summary>
/// 根据XPath读取XML节点值
/// </summary>
/// <param name="xmlPath">XML路径</param>
/// <param name="xPath">xPath</param>
/// <returns>节点值</returns>
public string ReadXmlNodeText(string xmlPath, string xPath) {
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlPath);//载入XML文档
XmlNode node = xmlDoc.SelectSingleNode(xPath);
if (node != null) {
return node.InnerText;
}
return string.Empty;//节点不存在返回空
}
}
XmlDocument x = new XmlDocument();
x.Load("~/a.xml");
XmlNodeList list = x.SelectNodes("/rundefine/book");
StringBuilder sb = new StringBuilder();
sb.AppendFormat("节点名称为 book 的个数为:{0}{1}", list.Count, Environment.NewLine);
int i = 0;
foreach (XmlNode node in list)
{
XmlNodeList cNodes = node.ChildNodes;
sb.AppendFormat("第 {0} 个book节点有 {1} 个子节点,分别是:{2}", ++i, cNodes.Count, Environment.NewLine);
foreach (XmlNode cNode in cNodes)
{
sb.AppendFormat(" 名称:{0},值:{1}{2}", cNode.Name, cNode.InnerText, Environment.NewLine);
}
}
list = x.SelectNodes("/rundefine/book1");
//按上面的方法获得……