2013-07-17 7 views
0

XML 요소와 그 자식을 가져와 XML을 이스케이프 처리하고 다른 문서의 텍스트 노드로 추가해야합니다. 나는이 접근법이 어리 석다는 것을 알고 있지만, API는 그것을 요구한다.XML 요소를 텍스트 노드로 추가 (이스케이프 처리)

Java 용 다양한 XML 라이브러리 중 하나를 사용하여이 작업을 수행 할 수 있습니까? JAXP를 사용해 보았지만 내 코드는 아포스트로피와 큰 따옴표를 이스케이프 처리하지 않습니다.

… 
    String content = elementToString(nodeToEscape); 
    Text text = document.createTextNode(content); 
    Node n = document.getElementsByTagName("targetNode").item(0); 
    n.appendChild(text); 
} 

String elementToString(Element element) { 
    Document document = element.getOwnerDocument(); 
    DOMImplementationLS domImplLS = (DOMImplementationLS) document.getImplementation(); 
    LSSerializer serializer = domImplLS.createLSSerializer(); 
    return serializer.writeToString(element); 
} 

결과 문서 조각은 :

<dataItem aggregate="none" name="Order number"… 
+2

따옴표와 아포스트로피를 이스케이프해야합니까? http://www.w3schools.com/xml/xml_syntax.asp "<"및 "&"문자는 XML에서 엄격하게 불법입니다. – gawi

+0

@gawi : 네 말이 맞아! 답변을 게시하려면 신경 써야합니까? – prasopes

답변

0

dom4j 확실하게이 작업을 수행하게됩니다. 나는 (몇 년 전에는) 아주 유사한 것들을해야만했고 dom4j가 나의 선택 도구였습니다. JDOM은 대안입니다 - 어느 것이 더 직관적인지 찾아보십시오.

두 가지 모두 JAXP보다 XML에 대한 친숙한 개체 모델을 제공합니다.

관련 문제