2017-05-12 6 views
0

을 적용 표시 PyQt는의 QWebView를 사용하는 방법 :XML을 witl의 XSLT가 <a href="http://pythoncentral.io/pyside-pyqt-tutorial-qwebview/" rel="nofollow noreferrer">PythonCentral</a>에 따르면

QWebView ... 당신은 웹 URL의 페이지, 임의의 HTML, XSLT 스타일 시트, 웹 페이지와 XML을 표시 할 수 있습니다 QWebPages로서 구성하고, 그 MIME 타입이 해석 방법

이 HTML 해석 된 것처럼, 즉, 태그가 얻어 여과하고 textnodes 도시하지만, XML 내용이 표시된다 w/O를 알고 다른 데이터 줄 바꿈.

질문 : xsl 스타일 시트가 적용된 QWebView에서 xml을 어떻게 표시합니까?

독립 실행 형 웹 브라우저에서 열어 본 것과 동일한 xml 파일이 정상적으로 표시됩니다. 변환 된 xml (lxml.etree에 의한)에서 생성 된 html 파일도 QWebView에 잘 표시됩니다. 여기

내 (약칭 함) XML 파일입니다 :

<?xml version='1.0' encoding='UTF-8'?> 
<?xml-stylesheet type="text/xsl" href="../../page.xsl"?> 
<specimen> 
    ... 
</specimen> 

답변

0

OK, 나는 해결책의 일부를 발견했다. QXmlQuery를 사용하는 다단계 접근 방법입니다.

path = base + "16000-16999/HF16019" 

xml = os.path.join(path, "specimen.xml") 
xsl = os.path.join(path, "../../page.xsl") 

app = QApplication([]) 

query = QXmlQuery(QXmlQuery.XSLT20) 
query.setFocus(QUrl("file:///" + xml)); 
query.setQuery(QUrl("file:///" + xsl)); 
out = query.evaluateToString(); 

win = QWebView() 
win.setHtml(out); 
win.show() 
app.exec_() 

분명히 xslt는이 방법으로 적용됩니다. 여전히 잘못된 점은 xslt에서 참조 된 CSS 스타일 시트가 적용/발견되지 않는다는 것입니다.

+0

나는이 독백을 정말로 즐겼다! – user508402