2008-11-10 4 views
3

XML 문서 객체를 처리하기 위해 Java의 Transformer 클래스를 사용하고 있습니다.Java XML : 하위 요소의 네임 스페이스를 출력하는 방법은 무엇입니까?

import javax.xml.transform.TransformerFactory; 
import javax.xml.transform.OutputKeys; 
import javax.xml.transform.Transformer; 

Transformer transformer = TransformerFactory.newInstance().newTransformer(); 
transformer.setOutputProperty(OutputKeys.INDENT, "no"); 
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); 

transformer.transform(source, result); 

가 현재 내 출력은 다음과 같습니다 : < SVG .../>

는 변압기를 생성하는 코드입니다. < svg : svg .../>

과 같이 각 요소의 네임 스페이스를 포함하고 싶습니다. 어떻게 할 수 있습니까? javax.xml.transform위한

+0

[여기에서 유래 스페이스를 설정 않음] [1] [1] : http://stackoverflow.com/questions/10584670/setting-namespaces-and-prefixes-in-a- java-dom-document/13048523 # 13048523 – Hans

답변

2

<svg xmlns="SVGNS" /><svg:svg xmlns:svg="SVGNS" />과 같습니다.

DocumentBuilderFactory 인스턴스에서 setNamespaceAware(true)으로 전화했는지 확인 했습니까?

0

패키지 설명이 섹션은 입력 및 출력 모두에서 표현되는 공간을 얻을 수 있음을 암시하는 것 같다 정규 이름 표현을 갖는다.

네임 스페이스 URI가 포함되는 것 외에 결과가 어떻게 보이는지 분명하지 않습니다.

시도해보십시오. 다른 누군가가보다 구체적인 경험을 가지기를 바랍니다.

0

내가 발견 한 것은 네임 스페이스를 사용하지 않고 접두어로 직접 지정해야한다는 것입니다.

el.setAttributeNS ("xsi", "type", type) 대신 el.setAttribute ("xmi : type", type)를 사용했습니다. 또는 el.setAttributeNS ("http://www...../URI", "type", type); 나는 NS 방법이 당신이하는 일을 전혀하지 않는다는 것을 알고 있습니다. 또한 접두어를 사용하지 않고 xmlns = "..."로 렌더링합니다.

관련 문제