3.利用jasp进行dom方式解析

 思路:利用jasp进行dom方式解析

《基本操作就这些,必须会》
 1,得到解析工厂DocumentBuilderFactory
 DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();

 2, 得到解析器 DocumentBuilder
 DocumentBuilder builder=factory.newDocumentBuilder();

 3,解析指定的xml文档,得到代表内存dom树的document对象
 Document document=builder.paser("xx.xml");
 
 练习:
 (1)得到某个具体的节点内容,打印第2本书的作者
   public static void test1(Document document)
   {
  //根据标签名称获取所有的作者元素
     NodeList n1=document.getElementByTagName("");
     //按照索引取第二个作者元素
  Node node=n1.item(1);
  //打印文本元素
  String text=node.getTextContent();
  System.out.println(text);

   }
  (2).遍历所有元素节点,打印元素的名称
   public static void test2(Document document)
   {
    //判断当前节点是不是一个元素节点
 //short type=node.getNodeType();
 if(node.getNodeType()==Node.ELEMENT_NODE)
    {
    //如果是,打印他的名称
    System.out.println(node.getNodeName());

  }
    //如果不是,找到他的孩子们
    NodeList n1=node.getChildNodes();
    int len=n1.getLength();
    for(int i=0;i
   {
      //遍历孩子:递归
   Node n =n1.item(i);
   test2(n);
    }
   }


 3,修改某个元素节点的主题内容,把第一本书的售价改为xx
 public static void test3(Document document)
 {
   //找到第一本书的售价
   NodeList na=document.getElementByTagName("");

   //设置其主体的内容
   Node node=na.item(0);
   node.setTextContext("xx");
   TransformerFactory facotry=TransformerFactory.newInstance();
   Transformer ts=factry.newTransformer();
   ts.transform(new DOMSource(document),new StreamResult("文件地址"));
 }

 4.向指定元素节点中增加子元素节点,
  public static void test4(Document doucment)
  {
    //创建一个新的元素并设置其主题内容
 Element e=document.createElement_x("内部价");
    e.setTextContext("00");
 //找到第一个对象,改变第一个对象
 Node firstBookNode=document.getElementsByTagName_r("书").item(0);
 fristBookNode.appendChild(e);
 //把内存中的Document 树写回xml文件中
    TransformerFactory facotry=TransformerFactory.newInstance();
    Transformer ts=factry.newTransformer();
    ts.transform(new DOMSource(document),new StreamResult("文件地址"));
  }

 5.向指定元素节点上增加同级元素节点(改变顺序)
 public static void test5(Document document)
 {
  //创建一个新的元素并设置其中的主题内容
  Element e=document.createElent("");
  e.setTextContent("00");
  //找到第一对象
  Node duixiang=document.getElementByTagName("添加的标签").item(0);

  //添加顺序改变(其实就是插入的位置)
     duixiang.getParentNode().insertBefore(e.duixiang);
   //把内存中的Document 树写回xml文件中
    TransformerFactory facotry=TransformerFactory.newInstance();
    Transformer ts=factry.newTransformer();
    ts.transform(new DOMSource(document),new StreamResult("文件地址"));

 
 }

 6.删除指定元素节点:删除内部价
 public static void test6(Document document)
 {
  //找到节点,用父删除
  Node n=document.getElementsByTagName_r("xx").item(0);
  n.getParentNode().removeChild(n);
    //把内存中的Document 树写回xml文件中
    TransformerFactory facotry=TransformerFactory.newInstance();
    Transformer ts=factry.newTransformer();
    ts.transform(new DOMSource(document),new StreamResult("文件地址"));
 }

  7.操作xml文件属性,打印第一本书的出版社
  public static void test7(Document document)
  {
   //得到对象
   Node n=document.getElementByTagName("").item(0);

   //打印指的的属性取值
   Element e=(Element)n;
  }
 8.给对象添加属性
   public static void test8(Document document)
  {
   //得到对象
   Node n=document.getElementByTagName("").item(0);

   //打印指的的属性取值
   Element e=(Element)n;
   e.setAttrubute("属性名","内容");
  }


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部