java web.xml配置详解中怎么直接获得xml中的某个指定的节点

[转载]Java中利用Dom4j解析并验证XML中是否存在某节点
XML数据结构:
&data&&templateid&163&/templateid&&temptype&3&/temptype&&unitdeptype&&/unitdeptype&&punishman&张三&/punishman&&punishno&No.123456&/punishno&&punishprojno&252002&/punishprojno&&punishamt&123.56&/punishamt&&punishdate&&/punishdate&&payer&张三表弟&/payer&&paybankno&56&/paybankno&&paybank&中国农业银行上海分行&/paybank&&punishdepend&罚没依据信息1&/punishdepend&&t1&辅助说明1&/t1&&billInfos&&billInfo&&billTypeNo&B000081&/billTypeNo&&billInfoNo&&/billInfoNo&&billAmt&100.56&/billAmt&&deliverdt&&/deliverdt&&/billInfo&&billInfo&&billTypeNo&B000081&/billTypeNo&&billInfoNo&&/billInfoNo&&billAmt&23&/billAmt&&deliverdt&&/deliverdt&&/billInfo&&/billInfos&&/data&
boolean isValidateNode =
&& //默认所有节点都存在Document validateN
&&&&&&&validateNode
= DocumentHelper.parseText(strXml);
&&&&&&&if(validateNode.selectSingleNode("data/templateid")==null
|| validateNode.selectSingleNode("data/temptype")==null
|| validateNode.selectSingleNode("data/punishdate")==null ||
validateNode.selectSingleNode("data/unitdeptype")==null
|| validateNode.selectSingleNode("data/punishprojno")==null ||
validateNode.selectSingleNode("data/punishno")==null
|| validateNode.selectSingleNode("data/punishamt")==null ||
validateNode.selectSingleNode("data/punishman")==null
|| validateNode.selectSingleNode("data/unitdeptype")==null ||
validateNode.selectSingleNode("data/payer")==null
|| validateNode.selectSingleNode("data/paybankno")==null ||
validateNode.selectSingleNode("data/paybank")==null
|| validateNode.selectSingleNode("data/punishdepend")==null){
&&&&&&&&isValidateNode
=&& //缺少指定节点时被置为false&&&&&&&}
&&&&&&&List
nodeList =
validateNode.selectNodes("data/billInfos/billInfo");
&&&&&&&for(Iterator
iter = nodeList.iterator(); iter.hasNext();){
Element tempEle = (Element)iter.next();
Document tempDoc = tempEle.getDocument();
if(tempDoc.selectSingleNode("data/billInfos/billInfo/billTypeNo")==null
tempDoc.selectSingleNode("data/billInfos/billInfo/billInfoNo")==null
&&&&&&&&&&
tempDoc.selectSingleNode("data/billInfos/billInfo/billAmt")==null
tempDoc.selectSingleNode("data/billInfos/billInfo/deliverdt")==null){
&&&&&&&&&isValidateNode
=&& //缺少指定节点时被置为false&&&&&&&&&
catch (DocumentException e) {
&&&&&&&logger.error(e.getMessage());
&&&&&&&e.printStackTrace();
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。java对xml节点属性的增删改查实现方法
投稿:jingxian
字体:[ ] 类型:转载 时间:
下面小编就为大家带来一篇java对xml节点属性的增删改查实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
学习本文之前请先看我的另一篇文章JAVA对XML节点的操作可以对XML操作有更好的了解。
import java.io.F
import java.io.FileW
import java.util.I
import org.dom4j.A
import org.dom4j.D
import org.dom4j.E
import org.dom4j.io.SAXR
import org.dom4j.io.XMLW
import org.junit.T
* 使用dom4j操作xml
* 对xml属性操作
* 时间:号
* 操作xml文件为contact.xml
* 本文件文件名为:attrDemo.java
* @author shutu008
public class attrDemo{
public void exmple() throws Exception{
//读取XML文件,获得document对象
SAXReader reader = new SAXReader();
Document document = reader.read(new File("./src/contact.xml"));
//获得某个节点的属性对象
Element rootElem = document.getRootElement();
//获取根节点属性对象
Attribute rootAttr = rootElem.attribute("id");
//获取指定节点属性对象
Element contactElem = rootElem.element("contact");
Attribute contactAttr = contactElem.attribute("id");
//遍历某个节点的所有属性
for (Iterator it = contactElem.attributeIterator();it.hasNext();){
Attribute conAttr= (Attribute)it.next();
String conTxt = conAttr.getValue();
String conAttrName = conAttr.getName();
System.out.println(conAttrName+" = "+conTxt);
//设置某节点的属性和值
contactElem.addAttribute("name", "zhangsan");
//设置(更改)某属性的值
Attribute nameAttr = contactElem.attribute("name");
nameAttr.setValue("lisi");
//删除某节点的指定属性
contactElem.remove(nameAttr);
//将某节点的属性和值写入xml文档中
XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"));
writer.write(document);
writer.close();
* 如果文档中有中文需要设置字符编码
* 用如下语句:
* OutputFormat format = OutputFormat.createPrettyPrint();
* format.setEncoding("GBK");
* XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"),format);
//获取指定对象的属性名
System.out.println(rootAttr.getName());
System.out.println(contactAttr.getName());
//获取指定对象的属性值
System.out.println(contactAttr.getValue());
System.out.println(rootAttr.getValue());
备注:以上例子代码可以直接运行。可以使用Junit 4调节本例子的代码。
以下是XML文档:
&?xml version="1.0" encoding="UTF-8"?&
&contactList id="0"&
&contact id="001" class="style"&
&name&张三&/name&
&age&20&/age&
&phone&&/phone&
&email&&/email&
&/contact&
&contact id="002"&
&name&李四&/name&
&age&20&/age&
&phone&&/phone&
&email&&/email&
&/contact&
&contactTwo&
&name&王五&/name&
&age&32&/age&
&phone&&/phone&
&emali&&/emali&
&/contactTwo&
&test&测试&/test&
&test&其他用途&/test&
&/contactList&
文件目录如图所示:
以上就是小编为大家带来的java对xml节点属性的增删改查实现方法全部内容了,希望大家多多支持脚本之家~
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具xml-dom4j中能否通过节点的属性获得某个具体的节点?
作者:用户
浏览:881 次
dom4j中能否通过节点的属性获得某个具体的节点?&root&&nodename="a"&&xml&1&/xml&&/node&&no
dom4j中能否通过节点的属性获得某个具体的节点?
&node name="a"&
&xml&1&/xml&
&node name="b"&
&xml&2&/xml&
&node name="c"&
&xml&3&/xml&
我想获得 node name="b" 的这个节点该怎么办?求各位大神帮忙解决下!!
public static void main(String[] args) {
SAXReader saxReader = new SAXReader();
document = saxReader.read(new File(Dom4j.class.getClass()
.getResource("/").getFile().toString()
+ "test.xml"));
Element root = document.getRootElement();
Element node = Dom4j.parse(root , "name" , "b");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
* 获得X属性结果是X值的整个标签
public static Element parse(Element node , String type , String val) {
for (Iterator iter = node.elementIterator(); iter.hasNext();) {
Element element = (Element) iter.next();
Attribute name = element.attribute(type);
if (name != null) {
String value = name.getValue();
if (value != null && val.equals(value))
parse(element , type , val);
【云栖快讯】红轴机械键盘、无线鼠标等753个大奖,先到先得,云栖社区首届博主招募大赛9月21日-11月20日限时开启,为你再添一个高端技术交流场所&&
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
开发者常用软件,超百款实用软件一站式提供Xml处理——快速定位Xml节点和获取数据 - CSDN博客
Xml处理——快速定位Xml节点和获取数据
场景一:快速定位到某一个具体的节点,并获取节点数据
public static Node getNode(Document doc, String path) {
if (doc != null) {
if (doc.selectSingleNode(path) != null) {
return doc.selectSingleNode(path);
场景二:获取某个列表类型的节点的数据
public static List&Node& getNodeList(Document doc, String path) {
if (doc != null) {
if (doc.selectNodes(path) != null) {
return doc.selectNodes(path);
场景三:获取指定节点的数据,并将数据注入到指定的JavaBean中(前提是JavaBean已经进行了注解的处理)
调用示例:
getXmlNode(&xml格式的string类型&,“指定节点的路径”,&想要转换成的javaBean类&,&节点替换前的名称&,&节点替换后的名称&)
getXmlNode(xml, &//item/degreeInfo&,Student.class,&degreeInfo&,&personBaseInfo&);
public static Object getXmlNode(String xml, String path, Class&?& cls, String... jss) {
String strXml =
doc = DocumentHelper.parseText(xml);
if (doc != null) {
if (doc.selectSingleNode(xpath) != null) {
strXml = doc.selectSingleNode(path).asXML();
if (jss != null && jss.length &= 2 && StringUtils.hasLength(strXml)) {
return XmlBase.xmlToBean(cls, strXml.replace(jss[0], jss[1]));
} else if (StringUtils.hasLength(strXml)) {
return XmlBase.xmlToBean(cls, strXml);
} catch (DocumentException e) {
e.printStackTrace();
场景四:获取xml某列表节点数据,并注入到相应的JavaBean中(前提是JavaBean已经进行了注解的处理)
getXmlNode(&xml格式的string类型&,“指定节点的路径”,JavaBean列表对象,&想要转换成的javaBean类&,&节点替换前的名称&,&节点替换后的名称&)
getXmlNode(xml, &//item/degreeInfo&,list,Student.class,&degreeInfo&,&personBaseInfo&);
public static void getXmlNode(String xml, String xpath,List list, Class&?& cls, String... jss) {
String strXml =
doc = DocumentHelper.parseText(xml);
if (doc != null) {
if (doc.selectNodes(xpath) != null) {
List&Node& lst= doc.selectNodes(xpath);
for(Node l:lst){
strXml=l.asXML();
if (jss != null && jss.length &= 2 && StringUtils.hasLength(strXml)) {
list.add(XmlBase.xmlToBean(cls, strXml.replace(jss[0], jss[1])));
list.add(XmlBase.xmlToBean(cls, strXml));
} catch (DocumentException e) {
e.printStackTrace();
本文已收录于以下专栏:
相关文章推荐
1.服务器端代码样例:
Java代码 
public class VideoListAction extends Action   
{  
 &#160...
DES加码 web获取xml配置信息实现接口加码
制作数据图表的插件有很多,像highcharts等,今天来讲一下用flash做图表,并用XML动态获取数据!
首先图表样式如下:
HTML代码:
上一篇中说过了天气预报的一个整体流程,以及可以划分 的各个模块.
        接下来我们要做的天气预报的第一部分,是从XML文档中将我们需要的数据截取出来.也就是所谓的XML解析.
   ...
自创html生成模板搭配xml获取数据无需写代码实现静态网站
实际项目:老干部和九重阳网站 欢迎访问 http://www.laoganbu.org http://www.9chongyang.co...
转自: http://www./Community/Wiki/%E5%9C%A8WP7%E4%B8%AD%E6%98%BE%E7%A4%BA%E5%91%98%E...
获取xml数据库节点数据应用
(1)XML数据库文件data.xml
定位到_samples/test.xml书包的e0.1节点,接下来的操作都对当前节点进行的,其中HtokID=节点号是一个固定用法。
如果是在页面中第一次使用,系统同样引入该xml文件
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Document有一个getElementById的方法,在文档中的解释是:&&&&返回具有带给定值的 ID 属性的 Element。如果不存在此类元素,则此方法返回 null。如果多个元素具有带该值的 ID 属性,返回哪一个元素是不确定的。注: 具有名称 "ID" 或 "id" 的属性不属于类型 ID,除非这样定义。 &&root&&&&&&test id="test"&&&&&&&&&haha&&&&&/test&&/root&上面是一个简单的xml实例,发现在java中通过getElementById("test")的方法,获取到的是一个null值,一查询才知道,正如文档中所说,即使设置id属性,Document也是无法识别的,因为不属于类型ID必须要在xml有相关定义。这时就需要dtd出场了。声明一个简单的内部样式即可解决问题:&!DOCTYPE root [& &!ELEMENT&root ANY&&&&& & &!ATTLIST&test &id ID #REQUIRED & ]&在xml头部加上这个,最后一行的意思是将test元素中的id属性设置为类型ID这样,再在java执行getElementById("test")就可以获取test元素了。
阅读(...) 评论()

我要回帖

更多关于 pom.xml 指定java版本 的文章

 

随机推荐