正则表达式: 了解
用正则的语法来描述具有特殊规则字符串
是一个门语言,具有自己的语法
作用:
查找,匹配,校验,分隔...
java中使用正则
1.String类中一些支持正则表达式语法的方法
String[] split(String regex) 将此字符串拆分为给定 regular expression的匹配 项 。
String replaceAll(String regex, String replacement) 将给定替换的给定 regular expression匹配的此字符串的每个子字符串替换。
String replaceFirst(String regex, String replacement) 将给定替换的给定 regular expression匹配的此字符串的第一个子字符串替换。
boolean matches(String regex) 判断此字符串是否与给定的 regular expression匹配。
2.模式器 Pattern
匹配器 Matcher
XML
XML 是标记语言
<!--标记语言的注释--> <!-- 1.xml是一个标记语言 <英文单词> 2.xml文件中标签可以根据需求自定义 3.xml文件的首行必须存在版本声明 4.xml文件中有且仅有一个跟标签|根元素 Persons,所有的子内容都定义在根元素中 5.xml的作用: 传输,存储,配置,解析... 6.属性: 开始标签上定义属性 属性可以帮助更完整|完善的展示标签的作用 7.标签的分类: 单标签|自闭和标签 双标签|闭合标签 -->
DOM4J解析:
1.查询,遍历
1)创建流,加载xml文件
2)获取Document对象
3)遍历
2.写出
3.创建
4.删除或者修改
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
public class Class02_Xml {
public static void main(String[] args) throws DocumentException, IOException {
writeToFile(update(getDocument("src/yjxxt.xml")),"src/yjxxt.xml");
}
//修改与删除
public static Document update(Document document){
//1.找到id属性值为2的元素,删除子标签tuition
Element root = document.getRootElement();
List<Element> list = root.elements();
list.forEach(e->{
String idValue = e.attributeValue("id");
if (idValue.equals("2")){
//父节点.remove(子节点)
Element removeElement = e.element("tuition");
e.remove(removeElement);
}
});
//1.找到shyjxxt,学费涨价1w
Element shyjxxt = root.element("shyjxxt");
Element tuition = shyjxxt.element("tuition");
tuition.setData(Integer.parseInt(tuition.getText())+10000);
return document;
}
//写出
public static void writeToFile(Document document,String path) throws IOException {
//1.构建XMLwriter
XMLWriter writer=null;
//构建输出格式
OutputFormat format=OutputFormat.createPrettyPrint();
writer=new XMLWriter(new FileWriter(path),format);
//3.写出
writer.write(document);
//4.刷出
writer.flush();
//5.关闭
writer.close();
}
public static Document createDocument(){
//1.创建Document
Document document= DocumentHelper.createDocument();
//2.添加根元素
Element root=document.addElement("yjxxt");
//3.根元素中添加子元素
Element shyjxxt=root.addElement("shyjxxt");
Element bjyjxxt=root.addElement("bjyjxxt");
shyjxxt.addElement("location").addText("上海市浦东新区");
shyjxxt.addElement("date").addText("2021-10-10");
bjyjxxt.addElement("location").addText("北京市朝阳区");
bjyjxxt.addElement("date").addText("2022-12-12");
return document;
}
//遍历
public static void print(Document document){
// 3)遍历
//获取根节点
Element root = document.getRootElement();
System.out.println("根元素标签名"+root.getName());
//获取子元素
List<Element> list = root.elements();
//遍历子元素
list.forEach(e->{
System.out.println("标签名 : "+e.getName() + "-->id属性 = "+e.attributeValue("id"));
//迭代所有子元素的迭代器
Iterator<Element> it = e.elementIterator();
while(it.hasNext()){
Element ele = it.next();
System.out.println(ele.getName()+"---->"+ele.getData());
}
});
}
//加载xml文件 , 获取Docuemnt
public static Document getDocument(String path) throws DocumentException {
//1)创建流,加载xml文件
SAXReader reader=new SAXReader();
//获取Document对象
Document document=reader.read(new File(path));
return document;
}
}