2016-07-19 2 views
1

나는 다음과 같이 관련 XSL 파일을 참조하는 XML 파일이 있습니다Java에서 XML <? xml-stylesheet ...?> 지시문을 호출하는 방법은 무엇입니까?

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="my-transform.xsl"?> 

<my-root> ..... 

을하고 나는이 변환을 적용하는 org.w3c.dom.Document로에서 읽고 싶어. I는 그것을 판독 XPATH /processing-instruction('xml-stylesheet')를 사용하여 스타일 시트 처리 명령어를 추출하고 손으로 XSL 파일을로드하고 Transformer으로 적용 고려하고

.

하지만이 작업을 수동으로 수행해야한다는 것이 이상하게 보입니다. 파일을 읽고 내장 된 변환을 자동으로 적용 할 수있는 깔끔한 방법이 있습니까?

업데이트 : TransformerFactory.getAssociatedStylesheet(...)은 xml-stylesheet 값을 Source으로 매우 가까워지기 때문에 @ raphaëλ에 감사드립니다. 그보다 더 자동화 된 것이 있습니까?

+0

XML로 XSL을 임베딩해야 할 필요가 있습니까? 아니면 다른 접근 방식이 괜찮습니까? – nawazlj

+1

'getAssociatedStylesheet' (https://docs.oracle.com/javase/8/docs/api/javax/xml/transform/TransformerFactory.html#getAssociatedStylesheet-javax.xml.transform.Source-java.lang)를 사용할 수 있습니다. String-java.lang.String-java.lang.String-)'Source'를 얻으려면 –

+0

@nawazlj 실제로 XML은 다운 스트림 클라이언트 사용자가 작성하기 때문에 XML은 스타일 시트를 지정해야합니다. 나는 그들에게 나에게 XSLT 파일을 제공함으로써 XML을 커스터마이징 (대량 복제 _! _ 읽기)하는 개념으로 팔아서 XML과 함께 자신의 속기를 개발하고 나에게 제공 할 수있다. 사실, 그들은 이미 그들의 속기를 개발했지만, 그것은 그들의 건설 과정에 있으며 나는 그들에게 봉사하는 일환으로 그것을 가져 오려고 노력하고 있습니다. 따라서 _their_ XML은 적용 할 _ 스타일 _ 시트 중 어느 것이 적합해야 하는지를 말해야합니다. – SusanW

답변

0

좋아, 아무도 대답하지 않았고, 나는 지금 대답을 알고있다. 스타일 시트는 자동으로 적용되지 않습니다. 그러나 TransformerFactory.getAssociatedStylesheet(...)을 사용하여 스타일 시트를 잡을 수 있으며 xml-stylesheet 값은 Source으로 식별됩니다. 그런 다음 수동으로 적용 할 수 있습니다.

raphaëλ에게 감사의 말을 전합니다.

관련 문제