<?xml version="1.0" encoding="UTF-8"?><Project internalId="4e303a41-9e23-4193-90a9-67c8e6b44699" name="BAM Testing"> 
  <DataTables> 
    <Table internalId="a16c7435-3fdc-4357-9133-df22ad235bb2" name="Data Preparation_Group"> 
      <Columns> 
        <Column name="Name"/>  
        <Column name="Description"/>  
        <Column name="Grouptype"/> 
      </Columns>  
      <Rows> 
        <Row isEnabled="true"/>  
        <Row isEnabled="true"/>  
        <Row isEnabled="true"> 
          <Field column="Name">Citibank Individuals</Field>  
          <Field column="Description">Citibank Individuals</Field>  
          <Field column="Grouptype">Individual Group</Field> 
        </Row>  
        <Row isEnabled="true"> 
          <Field column="Name">Test_Delete</Field>  
          <Field column="Description">Test for Delete Function</Field>  
          <Field column="Grouptype">Institution Group</Field> 
        </Row>  
        <Row isEnabled="true"> 
          <Field column="Name">Test_Edit</Field>  
          <Field column="Description">Test for Edit Function</Field>  
          <Field column="Grouptype">Institution Group</Field> 
        </Row> 
      </Rows> 
    </Table> 
  </DataTables> 
</Project>我现在又这样的一个xml 
我想用dom4j 把里面<rows></rows>中间标签的全部内容都删除掉!我现在是这么写的 发现没有效果
SAXReader reader = new SAXReader();
  Document doc = reader.read(new File(file));
  boolean Flag = false;
  List<Element> list = new ArrayList<Element>();
  // list=doc.selectNodes("//Rows/Row/@isEnabled");
  // //Table[contains(name,'Data Preparation')]Rows/Row
  list = doc.selectNodes(xpath);
  System.out.println(list.size());
  Iterator iter = list.iterator();
  iter = list.iterator();
  
  while (iter.hasNext())
  {
   Element bookElement = (Element) iter.next();//
   Iterator iterator = bookElement.elementIterator("Field");
   while (iterator.hasNext())
   {
    Element titleElement = (Element) iterator.next();
   
    bookElement.getParent().remove(bookElement);
   }
 
  }
        OutputFormat opf=OutputFormat.createPrettyPrint();
  XMLWriter xmr = new XMLWriter(new FileWriter(new File(file)),opf);
  xmr.write(doc);
  xmr.close();求指教!!DOM4JXMLJAVA解析

解决方案 »

  1.   

    SAXReader reader = new SAXReader();
      Document doc = reader.read(new File(file));
      boolean Flag = false;
      List<Element> list = new ArrayList<Element>();
      // list=doc.selectNodes("//Rows/Row/@isEnabled");
      // //Table[contains(name,'Data Preparation')]Rows/Row
      list = doc.selectNodes(xpath);
      System.out.println(list.size());
      Iterator iter = list.iterator();
      iter = list.iterator();
      
      while (iter.hasNext())
      {
       Element bookElement = (Element) iter.next();    bookElement.getParent().remove(bookElement);
       
     
      }
            OutputFormat opf=OutputFormat.createPrettyPrint();
      XMLWriter xmr = new XMLWriter(new FileWriter(new File(file)),opf);
      xmr.write(doc);
      xmr.close(); 我如果是这么写的话 就会把Rows也给删除掉!!
    我又不想删除ROws
    求指教!
      

  2.   

    xpath值是多少,另外把代码格式化一下,别人好帮你看。