怎么用java取出xml的节点

怎么用java取出xml的节点,第1张

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

<xml version="10 encoding="UTF-8">

<humans>

<zhangying>

<name>张映</name>

<sex>男</sex>

<old>28</old>

</zhangying>

<tank>

<name>tank</name>

<sex>男</sex>

<old>28</old>

</tank>

</humans>

simplexml读取xml

<php

$xml_array=simplexml_load_file('personxml'); //将XML中的数据,读取到数组对象中

foreach($xml_array as $tmp){

echo $tmp->name"-"$tmp->sex"-"$tmp->old"<br>";

}

>

我上午刚解决了这个问题,我把代码给你看看,不知道是不是你想要的。

我的xml数据很简单:

<device>

<item id="wd">312</item>

<item id="sd">367</item>

</device>

就是为了得到id=“sd”下的367的数据

x下面是简单代码:

XmlDocument dom = new XmlDocument();实例化XmlDocument

domLoadXml(dtRows[i]["data"]ToString());数据是存放在datatable里面的。其实这句就是加载xml语句。

//domSave("D:\\tempxml");

// XDocument xml = XDocumentLoad("d:\\tempxml");这两句原来用了,上一句就是保存成xml文件,下一句是使用XDocument 加载xml文件,这时候xml变量就可以显示为xml字符串了。

var node= domSelectSingleNode("device/item[@id='sd']");//读取指定的xml节点。

dtRows[i]["data"] = nodeInnerText;//读取该节点的值。这时候终于得到了我想要的数据了。

//var data= from x in xmlDescendants("item") where xAttribute ("id")Value == "sd" select x;这也是查询节点的语句,和上面注销的算式一组代码,但是这样读出来的还是<item>下的xml语句,不是我想读取的内部的值。xml语句和数据库还是有一定的相似之处的。可以使用select查询来读取节点内容。

友情链接:>

�0�2�0�2�0�2 最近遇到一个问题,用java解析xml时,需要获得一个xml文档中指定的某个节点,当然最简单的办法就是遍历所有的节点,如某个节点满足条件,则是我们要的结果,但我不想遍历所有的节点,因为这个问题只是一个复杂过程中的一小步,它会被反复调用,因此我需要最直接的方法获得某个已知属性值的确定节点。因此,这个问题也可以概括为:有没有根据节点(或name)属性名获得该节点的原api。

�0�2�0�2�0�2�0�2 具体一些,有如下xml文档:<sheet<field row="2" col="2" type="int"DEA_XZ</field2_2

<field row="2" col="3" type="string"RTP_ID</field2_3

<field row="2" col="4" type="string"DEA_YEAR</field2_4

<field row="2" col="7" type="int"DEA_RTP_TYPE</field2_7</sheet�0�2�0�2 我想获得row="2" col="3"的节点,据我所查,好像没有直接的方法。

�0�2�0�2 变通一下,xml修改如下:�0�2<sheet<field name="row2_col2" type="int"DEA_XZ</field2_2

<field name="row2_col3" type="string"RTP_ID</field2_3

<field name="row2_col4" type="string"DEA_YEAR</field2_4

<field name="row2_col7" type="int"DEA_RTP_TYPE</field2_7</sheet�0�2�0�2 这样呢?有没有直接的api,可以获得name为row2_col3的节点?同样,我也没有得到答案,大家有知道告诉小弟一下,不胜感激。

�0�2�0�2 实在没有办法,我就用了种“另类”的方式,xml如下:<sheet<field2_2 type="int"DEA_XZ</field2_2

<field2_3 type="string"RTP_ID</field2_3

<field2_4 type="string"DEA_YEAR</field2_4

<field2_7 type="int"DEA_RTP_TYPE</field2_7</sheet�0�2�0�2 这样看起来很不优雅,至少我是这么认为的。但这样却可以直接拿到你想要的节点:�0�2orgjdomElement root = documentgetRootElement();

�0�2�0�2 目前,我就是这样解决的,但我感觉很不优雅,我想我的xml文档(配置)文件应该保持第一种或第二种格式更好些。所以请大家帮忙,看看有没有直接的方法(api)

以上就是关于怎么用java取出xml的节点全部的内容,包括:怎么用java取出xml的节点、php如何获取xml根节点名称、C#如何读取xml文件里面节点里面的属性信息 显示到指定控件上等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9533641.html

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

发表评论

登录后才能评论

评论列表(0条)

保存