代码改变世界

jaxp解析xml

2019-08-16 15:20  进击的菜鸟123  阅读(211)  评论(0)    收藏  举报

1使用jaxp实现查询操作

*查询xml中所有的name的值

  1. 创建解析器工厂
  2. 根据解析器工厂创建解析器
  3. 解析xml返回document
  4. 得到所有name元素
  5. 遍历集合

 

Public static void main(String args[]) throws Exception{

DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = builderFactory.newDocumentBuilder();

Document document = builder.parse(“src/person.xml”);

NodeList list = document.getElementsByTagName(“name”);

for(int i = 0;i<list.getLength();i++){

Node name1 = list.item(i);

String s = name1.getTextContent();

System.out.println(s);

}

}

 

  1. 查询得到xml中第一个name元素
  2. 创建解析器工厂
  3. 根据解析器工厂创建解析器
  4. 解析xml得到document
  5. 得到所有name元素
  6. 使用返回的集合,里面的item下标获取具体元素
  7. 得到具体的集,getTextConteng()

 

Public static void main(String args[]){

DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = builderFactory.newDocumentBuilder();

Document document = builder.parse(“src/person.xml”);

NodeList list = document.getElementsByTagName(“name”);

Nade name1 = list.item(0);

String s = name1.getTextContent();

System.out.println(s);

}

 

  1. 使用jaxp添加节点

*在第一个p1下面添加<sex>nv</sex>

  1. 创建解析器工厂
  2. 根据解析器工厂创建解析器
  3. 解析xml得到document
  4. 得到所有p1元素,得到p1
  5. 创建sex标签 createElement
  6. 创建文本 createTextNode
  7. 将文本加到sex下面  appendchild
  8. sex加到第一个p1底下
  9. 回写xml

 

Public static void main(String args[]){

DcomentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = builderFactory.newDocumentBuilder();

Document document = builder.parse(“src/person.xml”);

Node p1 = document.getElementsByTagName(“p1”).item(0);

Element sex1 = createElement(“sex”);

Text text1 = createTextNode(“nv”);

Sex1.appendChild(text1);

p1.appendChild(sex1);

TransformerFactory transformerFactory = TransformerFactory.newInstance();

Transformer transformer = transformerFactory.newTransformer();

Transformer.transformer(new DOMSource,new StreamResult(“src/person.xml”);

}

 

  1. 使用jaxp修改节点

*sex下的值改为nan

  1. 创建解析器工厂
  2. 使用解析器工厂创建解析器
  3. 解析xml得到document
  4. 得到<sex>元素
  5. 修改sex里面的值setTextContent
  6. 回写xml

 

Public static void main(string srg[]){

DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();

DcoumentBuileder builder = builderFactory.newDocumentBuilder();

Document document = builder.parse(“src/person.xml”);

Node sex1 = document.getElementsByTagName(“sex”).item(0);

Sex1.setTextContent(“nan”);

TransformerFactory transformerFactory = TransformerFactory.newInstance();

Transformer transformer = transformerFactory.newTransformer();

Transformer.transformer(new DOMSource,new StreamResult(“src/person.xml”);

}