2017-11-21 11 views
0

XSLT 파일을 일반 텍스트로 변환하려고합니다. 문제는 XSLT 파일에 인코딩 된 값 (예 : &)이 &이고 Transformer 팩토리가 인코딩 된 값을 출력한다는 것입니다. XML 디코더를 사용하고 일반 텍스트로 변환하는 것보다 나은 점이 있습니까?XSLT를 인코딩 된 데이터가있는 일반 텍스트로 변환하는 방법은 무엇입니까?

TransformerFactory tFactory = TransformerFactory.newInstance(); 
Transformer transformer = tFactory.newTransformer(new StreamSource(XSLT_Source));  
transformer.setOutputProperty("media-type", "text/plain"); 
transformer.transform(new StreamSource(XSLT_Source), new StreamResult(new FileOutputStream(outputTrager))); 
+0

을 설정해야합니다, https://docs.oracle.com/javase/8/docs/api/javax/xml/transform/OutputKeys.html#METHOD를 참조하십시오. Java API를 사용하여이를 수행 할 수있는 방법이있을 수도 있지만 세부 사항을 기억하지는 않으며 XSLT 프로세서에 의존 할 수도 있습니다. –

답변

1

스타일 시트를 편집 할 수있는 경우 <xsl:output method="text"/>을 사용해야합니다. <: 출력 방법 = "텍스트"/ XSL> '당신은 JAXP API를 사용하여 그 프로그램 설정하려는 경우, 당신은 XSLT 그것이'사용 확인 편집 할 수있는 경우에 당신은

transformer.setOutputProperty(javax.xml.transform.OutputKeys.METHOD, "text"); 
+0

이것은 굉장합니다! 미디어 유형에 잘못된 출력 속성을 사용하고있었습니다. 결과 트리의 출력 형식을 구별 할 수 없습니다. MEHTOD 속성을 사용하면 명시 적으로 결과 트리를 텍스트로 설정하고 인코딩을 처리합니다. – user8185075