2016-03-28 51 views
1

Bir xml dosyasına sahibim ve bazen bazı düğümleri silmem gerekiyor. Bu benim xml örneğidirçocuğu silin ve taşıma arabasını xml'den alın

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)); 

:

Bu

benim kodudur

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

Ve bu yürütürken ne var:

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


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

etikettir silindi, ancak dosyadaki boşluğunu silmem gerekiyor.

nasıl yapabilirim bu

+1

Ve nasıl geri dosyaya ha senin xml yazıyoruz ?? – Antoniossss

+0

Kodumu dönüşümle güncelledim – cucuru

cevap

1

Bu hızlı & kir çözümdür:

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

Üzgünüz, aradığım XmlProperty – cucuru

+0

@cucuru sorunun cevabını anlamıyorum. Temel olarak, tüm taşıma dönüşlerini ve satırsonları xml dizesinden ayrıştırmadan önce değiştirirsiniz ve sonra trafoyu çıktıya girmesini söylersiniz. –

+0

teşekkürler! işe yaramıyor, neler olduğunu anlayamıyorum! – cucuru