C# 如何得到一XML文件中指定的节点属性值

C# 如何得到一XML文件中指定的节点属性值,第1张

//xmlFile是xml文件,nodeName是节点名,attributeName是节点的属性名,因为节点名是可以重复的,所以用list存放返回值

public List<string> GetAttribute(string xmlFile, string nodeName, string attributeName)

{

List<string> retList = new List<string>();

XmlDocument xx = new XmlDocument();

xxLoad(xmlFile);

XmlNodeList xxList = xxGetElementsByTagName(nodeName);

foreach (XmlNode xxNode in xxList)

{

retListAdd(xxNodeAttributes[attributeName]Value);

}

return retList;

}

XmlDocument先把xml load进来。。

//取所有root节点子节点

XmlNodeList nodeList = docSelectNodes("/root");

for each(XmlNode node in nodeList) //遍历每一个子节点

{

//分别读取子节点的需要节点值,自己存吧,反正这么取的

string elementValue=nodeSelectSingleNode("//elementValue")InnerTextToString();

string elementScore=nodeSelectSingleNode("//elementScore")InnerTextToString();

}

创建解析器

SAXReader saxreader = new SAXReader();

读取文档

Document doc = saxreaderread(new File("url"));

获取根

Element root = docgetRootElement();

获取子节点

List<Element> list = rootelements();

Systemoutprintln(eelementText("name"));

Systemoutprintln(eelement("score")attributeValue("java"));

Reader reader = new InputStreamReader(con

getInputStream());

SAXReader sax = new SAXReader();

// saxsetEncoding("GBK");

Document document = saxread(reader);

documentsetXMLEncoding("GBK");

Element root = documentgetRootElement();

// Document doc = readerread(read);

// Element root = docgetRootElement();

readNode(root, "");

public static void readNode(Element root, String prefix) {

if (root == null) return;

// 获取属性

List<Attribute> attrs = rootattributes();

if (attrs != null && attrssize() > 0) {

Systemerrprint(prefix);

for (Attribute attr : attrs) {

Systemerrprint(attrgetValue() + " ");

}

Systemerrprintln();

}

// 获取他的子节点

List<Element> childNodes = rootelements();

prefix += "\t";

for (Element e : childNodes) {

//输出内容

Systemerrprintln(egetName()+":"+egetData());

readNode(e, prefix);

}

}

代码如下:

import javaxxmlparsersDocumentBuilder;

import javaxxmlparsersDocumentBuilderFactory;

import orgw3cdomDocument;

import orgw3cdomElement;

import orgw3cdomNodeList;

public class FileTest {

/

@param args

/

public static void main(String[] args) {

DocumentBuilderFactory dbf = DocumentBuilderFactorynewInstance();

try {

DocumentBuilder db = dbfnewDocumentBuilder();

Document doc = dbparse("d:/testxml");

//得到根节点

Element root = docgetDocumentElement();

NodeList nl = rootgetElementsByTagName("id");

Element e = (Element) nlitem(0);

String id=egetTextContent();

Systemoutprintln("id的值为:"+id);

}catch(Exception e){

eprintStackTrace();

}

}

}

上面的代码中我把

<message msgType="response" msgId="String" timestampCreated="2010-5-13 15:55:54" version="String">

<response>

<code>0</code>

<description>成功</description>

</response>

<body bodyId="1">

<id>11223344</id>

</body>

</message>

这段内容放到了D盘下的testxml文件中

你如果要用可以直接将得到的给字符串加载成Document对象,就可以取到了。

可以通过元素中的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")逗获取到子节点的元素,前提是需要知道子节点的名称。

SELECT masterdbofn_pcre_match('该段xml代码','<() value=()>')

获取xml中的字段信息,根据‘<() value ()>’该正则过滤出所有的信息,如果匹配到了,返回结果1,没匹配到就是0了

以上就是关于C# 如何得到一XML文件中指定的节点属性值全部的内容,包括:C# 如何得到一XML文件中指定的节点属性值、.net读取XML子节点的值、java怎么通过xml节点的属性获取这个节点的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存