C# *** 作XML,如何获取指定节点值

C# *** 作XML,如何获取指定节点值,第1张

C# *** 作XML 有以下几种方式:

1:使用XmlDocument相关类库和方法 *** 作xml

2:使用XDocument相关类库和方法 *** 作xml

3:使用XmlReader和XmlWriter相关类库和方法 *** 作xml

获得指定节点的值也需要 分为属性和元素

1:使用XmlDocument

XmlDocument doc = new XmlDocument();

docLoad("Customer2xml");

// XmlNodeList nodeList = docGetElementsByTagName("row");

XmlNodeList nodeList = docSelectNodes("/Table/row");

//读取属性+元素

foreach (XmlNode item in nodeList)

{

customerInfoAppId = itemAttributes["AppID"]Value;

customerInfoCustomerID = item["CustomerID"]InnerText;

}

2:使用XDocument

XDocument xdoc = XDocumentLoad("Customer2xml");

var custs = from customer in xdocDescendants("row")

select new

{//读取属性+元素

Version = customerAttribute("Version")Value,

CustomerID = customerElement("CustomerID")Value,

};

3:使用XmlReader

XmlReader reader = XmlReaderCreate("Customer2xml", settings);

//读取属性

while (readerRead())

{

if (readerNodeType == XmlNodeTypeElement)

{

switch (readerName)

{

case "row":

customerInfo = new CustomerInfo();

if (readerHasAttributes)

{

customerInfoAppId = readerGetAttribute("AppID");

customerInfoVersion = readerGetAttribute("Version");

}

break;

case "CustomerID":

customerInfoCustomerID = readerReadString();

break;

}

}

可以通过元素中的getText方法获取到节点的内容。

举例:

SAXReader sax = new SAXReader();

Document document = saxread(reader);//reader为定义的一个字符串,可以转换为xml

Element root = documentgetRootElement();//获取到根节点元素String str = root getText()//获取到节点的内容

用到的是dom4j-161jar,需要引入的包是:

import orgdom4jDocument;

import orgdom4jDocumentException;

import orgdom4jElement;

import orgdom4jioSAXReader;

备注:如果是多个子节点可以通过”Element xx=root element("code")“获取到子节点的元素,前提是需要知道子节点的名称。

static DataSet GetItems(string name)

{

// 得到满足条件的Items集合

XmlDocument doc = new XmlDocument();

docLoad("1xml");

string xPath = stringFormat(@"/menu/lables[@name='{0}']/item", name);

XmlNodeList itemArray = docSelectNodes(xPath);

// 生成新的xml对象

XmlDocument newDoc = new XmlDocument();

newDocAppendChild(newDocCreateElement("Root"));

foreach (XmlNode item in itemArray)

{

newDocFirstChildInnerXml += itemOuterXml;

}

// 转换成DataSet

DataSet ds = new DataSet("ItemsDataSet");

byte[] buffer = EncodingUTF8GetBytes(newDocOuterXml);

using (MemoryStream ms = new MemoryStream(buffer))

{

dsReadXml(ms);

}

return ds;

}

以上就是关于C# *** 作XML,如何获取指定节点值全部的内容,包括:C# *** 作XML,如何获取指定节点值、怎么获取xml指定节点的内容、.net 读取XML下的一个节点下的 所有ITEM节点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9767137.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存