xmllint
을 사용하고 XPath 1.0을 사용하여 HTML/XHTML 입력을 처리 할 수 있습니다. 예를 들어 예상Saxon에서 XHTML을 처리 할 수 있습니까?
xmllint --xpath "//title" --html http://www.w3.org/TR/xslt20/ 2>/dev/null
출력하지만 슨으로 :
java -cp /usr/share/java/saxon9he.jar net.sf.saxon.Query -s:"http://www.w3.org/TR/xslt20/" -qs:"//title"
결과가 없습니다.
HTTP 문서 연결에 대해 실행하면 2 분 후에 다시 설정하고, 로컬 문서에 종료됩니다 w 결과 O를 분 오 부부는 내가 처리 XHTML 문서에 관련된 아무것도 찾을 수 없습니다 색슨 documentation에서
을 처리 한 후/
나는이 질문을 발견
: Saxon Xpath namespace 그리고 더 많은 정보와 질문을 통해 업데이트 : 여기
는 HTML 파서 (NO --html
스위치)를 사용하지 않고 xmllint
예입니다
xmllint --xpath "//*[local-name()='title'][namespace-uri()='http://www.w3.org/1999/xhtml']" http://www.w3.org/TR/xslt20/
출력한다 : 색슨 사용하여 다시
<title>XSL Transformations (XSLT) Version 2.0</title>
:
java -cp /usr/share/java/saxon9he.jar net.sf.saxon.Query -s:"http://www.w3.org/TR/xslt20/" -qs:"//*[local-name()='title'][namespace-uri()='http://www.w3.org/1999/xhtml']"
결과가 없습니다
를
물론 올바른 형식의 XML (실제로는 유효한 XHTML) 일 수 있습니다. XHTML 요소는 네임 스페이스 (http : // www.w3.org/ 1999/xhtml)에 있습니다. 네임 스페이스를 지정했는지 확인하십시오. –
'http : // www.w3.org/TR/xslt20 /'*은 * XHTML 소스 문서입니다. 그것은 HTML 깔끔한 XML 테스트를 통과하고 그것으로 생성됩니다. 쉽게 확인할 수 있습니다. – theta
붙여 넣은 것을 놓친 것 같아요. 'http : // www.w3.org/1999/xhtml'과 같은 문자열은 아닙니다. 네임 스페이스를 고려하지 않기 때문에'// title'과 아무 것도 match하지 않을 것입니다. –