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

来源:互联网 发布:java 验证 数字 编辑:程序博客网 时间:2024/04/29 21:55

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

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

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

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

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

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


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

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

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

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

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

 
 }

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

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

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

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

0 0
原创粉丝点击