java - 从 xml 中删除子项并回车

标签 java xml domdocument

我有一个xml文件,有时我必须删除一些节点。

这是我的代码:

    String xmlProduct = ""; //my xml above
    if(!xmlProduct.equals("")){
        InputSource is = new InputSource();
        is.setCharacterStream(new StringReader(xmlProduct));
        Document dom;
        DocumentBuilderFactory dbf = (DocumentBuilderFactory) DocumentBuilderFactory.newInstance();
         DocumentBuilder db = (DocumentBuilder) dbf.newDocumentBuilder();
         dom = db.parse(is);
         dom.normalize();


    //delete property 


    NodeList nodoProperty = dom.getDocumentElement().getElementsByTagName("Property");

    for(int i=0; i<nodoProperty.getLength(); i++){
        Node nodoBorrar = nodoProperty.item(i);
        nodoRaizXML.item(0).removeChild(nodoBorrar);

    }
 }

 //Convert to xml format

   TransformerFactory tf = TransformerFactory.newInstance();
   Transformer transformer = tf.newTransformer();
   StringWriter writer = new StringWriter();
   transformer.transform(new DOMSource(dom), new StreamResult(writer));

这是我的 xml 示例:

<Deal>
    <SelectedDeal>+1</SelectedDeal>
</Deal>
<Property>
   <PropertyId>8215</PropertyId>
   <HPIValueChanged>1</HPIValueChanged>
 </Property>
 <FundBooking>
    <ProductCode>J128R?</ProductCode>
     <ControlNumber>            </ControlNumber>
  </FundBooking>

这是我执行时得到的结果:

<Deal>
   <SelectedDeal>+1</SelectedDeal>
 </Deal>


<FundBooking>  
   <ProductCode>J128R?</ProductCode>
    <ControlNumber>            </ControlNumber>
 </FundBooking>

标签已删除,但我需要删除其在文件中的空间。

我该怎么做

最佳答案

这是快速但肮脏的解决方案:

xmlProduct = xmlProduct.replaceAll("\n", "").replaceAll("\r", "");
//...
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

关于java - 从 xml 中删除子项并回车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36266603/

相关文章:

java - 如何获取每天随着天数递增的输出

php - 如何用纯文本替换多个 img 元素?

java.lang.NullPointerException 通过对象输出流发送消息时

java - Jframe 调用另一个 jframe 但没有任何反应

android - 带边框的透明圆圈

python - 在Python中使用For循环创建一个xml文件

sql - 如何让BCP生成用于将固定宽度数据导入SQL Server表的格式文件?

php - DOMDocument->saveHTML() vs urlencode with commercial at symbol (@)

php - CakePHP Xml 实用程序库触发 DOMDocument 警告

java - 如何让@WebMvcTest 与 OAuth 一起工作?