概述
Dom解析的文章已经烂大街了。在这里,只举三个场景下如何编码的例子:
- 已获取到某个节点,生成这个节点的
- 修改节点某属性的值
详细的讲解看官请自行百度。
dom4j包下载链接为:点击下载dom4j
获取多个同名节点
<model name="model"> <operator name="kafkaInput"> <parameter name="inputTopicName" value="department1_tn1"/> </operator> <operator name="addFielduuid"> <parameter name="parameter1" value="p1"/> </operator> <operator name="kafkaOutput"> <parameter name="outTopicName" value="department1_tn1"/> </operator> <connect from="kafkaInput.outport1" to="addFielduuid.inport1"/> <connect from="addFielduuid.outport1" to="kafkaOutput.inport1"/> <ouput path="/home"/></model>
- 如上
- 获取多个同名节点不仅需要dom4j包,还需要Jaxen包。
- Jaxen包下载链接为:点击下载Jaxen
获取这三个节点的代码为:
publicstaticvoidparsingSameNameNode(String {File file = new File(argsPath);// 创建saxReader对象SAXReader reader = new SAXReader();// 通过read方法读取一个文件 转换成Document对象Document document;try { document = reader.read(file); List<Element> operators = document.selectNodes("/model/operator"); for(Element operator:operators){ //do something... }} catch (DocumentException e) { e.printStackTrace();}}
上面代码逻辑为:- 根据document拿到dom树的根节点rooNode
- 获取rootNode节点下的context节点
- 使用as
修改属性值
- 有两种修改属性值的方法
- 先获取到该属性,使用属性的接口setValue(),修改属性值
- 先获取到该属性所在节点,使用接口setAttributeValue()修改属性值
使用属性的setValue()接口,修改属性值
使用节点的setAttributeValue接口,修改属性值
原标题:Java Dom解析的三个实例
关键词:JAVA