使用xPath技术快速获取指定节点并对其修改--(xPath技术基础)
来源:互联网 发布:淘宝九宫格怎么做 编辑:程序博客网 时间:2024/06/05 00:35
xPath技术
1、问题:当使用dom4j查询比较深的层次结构的节点、属性、标签、文本
2、作用:用于快速获取所需的节点对象
3、在dom4j中如何使用xPath技术
1).导入xPath支持的jar包 jaxen-1.1-beta-6.jar
2).使用xPath的方法
List<Node> selectNodes("");查找多个节点对象
Node selectSingleNode("xPath表达式");查找一个节点对象
4、xPath的语法
取标签
/ 绝对路径 表示从XML的根位置开始或子元素
// 相对路径 表示部分任何层次结构的选择结构
* 通配符 表示匹配所有的元素
[数字或函数] 条件 表示选择什么条件下的元素
@ 属性 表示选取属性节点
and 关系 表示条件关系的与关系
test() 文本 表示选择文本内容主程序:
xPath举例:
package gz.itcast.b_xpath;import java.io.File;import java.util.List;import org.dom4j.Document;import org.dom4j.Node;import org.dom4j.io.SAXReader;/** * 学习xPath表达式语法 * @author APPle * */public class Demo2 {public static void main(String[] args) throws Exception {Document doc = new SAXReader().read(new File("./src/contact.xml"));String xpath = "";/** * 1. / 绝对路径 表示从xml的根位置开始或子元素(一个层次结构) */xpath = "/contactList";xpath = "/contactList/contact";/** * 2. // 相对路径 表示不分任何层次结构的选择元素。 */xpath = "//contact/name";xpath = "//name";/** * 3. * 通配符 表示匹配所有元素 */xpath = "/contactList/*"; //根标签contactList下的所有子标签xpath = "/contactList//*";//根标签contactList下的所有标签(不分层次结构)/** * 4. [] 条件 表示选择什么条件下的元素 *///带有id属性的contact标签xpath = "//contact[@id]";//第二个的contact标签xpath = "//contact[2]";//选择最后一个contact标签xpath = "//contact[last()]";/** * 5. @ 属性 表示选择属性节点 */xpath = "//@id"; //选择id属性节点对象,返回的是Attribute对象xpath = "//contact[not(@id)]";//选择不包含id属性的contact标签节点xpath = "//contact[@id='002']";//选择id属性值为002的contact标签xpath = "//contact[@id='001' and @name='eric']";//选择id属性值为001,且name属性为eric的contact标签/** *6. text() 表示选择文本内容 *///选择name标签下的文本内容,返回Text对象xpath = "//name/text()";xpath = "//contact/name[text()='张三']";//选择姓名为张三的name标签List<Node> list = doc.selectNodes(xpath);for (Node node : list) {System.out.println(node);}}}
package gz.itcast.a_dom4j_read;import java.io.File;import java.io.FileOutputStream;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;import org.junit.Test;public class Demo_xPath {//使用xPath技术进行查询@Testpublic void test1() throws Exception {Document doc = new SAXReader().read(new File("f:/Student.xml"));String xPath = "//*";List<Node> list = doc.selectNodes(xPath);for(Node node : list) {System.out.println(node);}}public static void main(String[] args) throws Exception {/* * 需求:删除id值为2的学生标签 */Document doc = new SAXReader().read(new File("f:/Student.xml"));//1.查询id为2的学生标签//使用xPath技术Element stuElem = (Element)doc.selectSingleNode("//Student[@id=2]");//2.删除标签stuElem.detach();FileOutputStream out = new FileOutputStream("f:/Student.xml");OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("utf-8");XMLWriter writer = new XMLWriter(out,format);writer.write(doc);writer.close();}}
0 0
- 使用xPath技术快速获取指定节点并对其修改--(xPath技术基础)
- xPath技术快速定位节点
- XPath技术
- xPath技术
- javawebday09(dom4j修改节点删除节点获取属性 xpath)
- XPath技术简介
- javaWeb-day02(Xpath 提取技术)
- PHP 自学之路-----XML编程(Xpath技术,simpleXml技术)基础入门
- XPath 节点
- XPath 节点
- XPath 节点
- XPath 节点
- XPath 节点
- XPath 节点
- XPath 节点
- 使用 XPath 导航选择节点
- 使用 XPath 导航选择节点
- 通过xpath查找指定的节点
- ActiveMQ安装
- 调试技巧之 console 大全
- eclipse过滤log
- float和double在内存中的存储
- Required String parameter '×××' is not present
- 使用xPath技术快速获取指定节点并对其修改--(xPath技术基础)
- Git 常用命令
- SAP新增仓库
- gdb-100-tips
- Struts2的入门使用
- String字符串的应用
- [LeetCode]437. Path Sum III
- Zend Studio使用教程之在Docker容器中调试PHP Web应用(三)
- Android引入外部字体更改APP字体