删除子项并从xml返回运输

时间:2016-03-28 16:35:20

标签: java xml domdocument

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

这是我的代码:

options spool=1;
resetline;
data temp;
   set _null_;
   run;

%put Hello world;

%include 1-3 / source2;
%include 5 / source2;

这是我的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));

这就是我在执行时得到的:

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

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

我该怎么做

1 个答案:

答案 0 :(得分:1)

这是快速&amp;污垢解决方案:

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