2010-03-12 7 views
4

QtWebKit을 사용하여 Qt 응용 프로그램에 일부 (X) HTML 내용을 표시하고 싶습니다. XSLT를 통해 XML 문서에서 콘텐츠를 생성해야합니다.Qt를 사용한 XSLT 처리

내가 Qt를 처음 접했을 때 내 질문은 다음과 같습니다 :
1) QtWebKit은 xml-stylesheet 요소가 설정된 XML 문서를 표시 할 수 있습니까?
2) Qt가 XSLT를 XML 문서에 적용하고 그 결과를 문자열로 반환하거나 파일에 쓸 수 있습니까?

답변

0

QtWebKit과 xslt는 항상 seprate였으며, 이들을 결합하는 것은 항상 현재 상태입니다. 그러나 예제로 쉽게 테스트 할 수 있습니다.

또는 QXmlQueryhttp://labs.trolltech.com/blogs/2010/03/03/qtwebkit-releases/

+0

오늘 Qt의 브라우저 데모를 사용해 보았습니다 .xml-stylesheet 요소가 설정되었지만 XSLT를 적용 할 수 있습니다. 기본 xml 데이터를 변경하지 않고 요소를 동적으로 설정하는 방법은 없습니다. – swegi

10

당신이 XSL 템플릿에 대해 XML 문서를 처리 한 후 QWebEngineView::setHtml(..)를 사용 Qt는의 QWebView::setHtml(QString) (최신 버전에 결과를 전달할 수 있습니다 따릅니다.

QString out; 
QXmlQuery query(QXmlQuery::XSLT20); 
query.setFocus(QUrl("myInput.xml")); 
query.setQuery(QUrl("myStylesheet.xsl")); 
query.evaluateTo(&out); 
webview->setHtml(out); 

당신은 찾을 수 있습니다 이 코드와 더 많은 정보는 QXmlQuery documentation

+0

QXmlQuery는 setQuery?를 호출하는 대신 XML 파일에 포함 된 xsl 링크를 해결할 수 있습니까? 내 말은, 코드 스 니펫에서 "myInput.xml"에 XSL 파일에 대한 링크가 포함되어 있고 XSL 파일에 다른 XSL 파일에 대한 참조가 재귀 적으로 포함되어 있으면 QXmlQuery가 모든 스타일 시트를로드하는 데 어떻게 적용될 수 있습니까? 벌써 해줄까요? 또는 setQuery는 항상 필요합니까? (이런 경우 종속성 트리 또는 이와 유사한 것을 만들기 위해 XML 및 XSL 파일을 스캔해야합니다). – Claudix

+0

@Claudix, 질문이 여전히 유효하다면, [새로운 질문으로 질문하십시오] (http://stackoverflow.com/questions/ask)를 고려하십시오. 그리고 네, 가능합니다. – Abel

관련 문제