您的位置:首页 > 编程语言 > ASP

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

2015-08-02 12:59 579 查看
 思路:利用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("属性名","内容");

  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: