dom4j 刪除所有節點的文本都為空白的父節點

來源:互聯網
上載者:User

xml 如下,如果row節點的子節點的text全部為空白就刪除row 節點。

<?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">          <Field column="Name"></Field>          <Field column="Description"></Field>          <Field column="Grouptype"></Field>        </Row>        <Row isEnabled="true">          <Field column="Name"></Field>          <Field column="Description"></Field>          <Field column="Grouptype"></Field>        </Row>        <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> 

 

package xmlTest;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;@SuppressWarnings("unchecked")public class RemoveTheNodeWithEmptyText{ public static void main(String[] args) throws DocumentException, IOException {  removeAllNodeWithEmptyText(    "C:/Users/Administrator/Desktop/BAM Testing_Data.xml",    "//Table/Rows/Row"); }  public static void removeAllNodeWithEmptyText(String file, String xpath)   throws DocumentException, IOException {  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();    if (titleElement.getText().equals(""))    {     Flag = true;     // bookElement.remove(titleElement);    }    else    {     Flag = false;     break;    }   }   if (Flag)   {   //獲得其父節點然後刪除節點    bookElement.getParent().remove(bookElement);   }  }        OutputFormat opf=OutputFormat.createPrettyPrint();  XMLWriter xmr = new XMLWriter(new FileWriter(new File(file)),opf);  xmr.write(doc);  xmr.close(); }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.