2012-12-06 5 views
1

XML의 값을 XPath까지 선택하려고합니다. 궁금한데 이고, xmlstarlet sel -t -m //data /tmp/test.xml이 아닙니다.XML starlet의 "view"옵션을 사용하는 방법은 무엇입니까?

나는이 옵션이 -v이라는 것을 알고 있습니다. 보기을 의미합니다. 그러나 xmlstarlet sel -t -m //data -v /tmp/test.xml이 막히고 있습니다.

내 질문은 보기보기를 올바르게 사용하는 방법입니다.

답변

2

실은 -v는 가치와의-m가 - 각수단을 의미한다. 이것들은 XSLT 정의 *을 참조합니다. sel 부속 명령은 단순히 XSLT. 서를 생성하고 입력에서 실행하기 때.입니다.

xmlstarlet sel -t -m //data /tmp/test.xml 

본문이없는 루프이므로 출력이 없습니다. 여기 /tmp/test.xml-v에 XPath 식으로 해석

xmlstarlet sel -t -m //data -v /tmp/test.xml 

그래서 이는 : 피 각 데이터 노드, 출력 값은 - 노드의 tmp 루트 노드 아래 test.xml라는. 그리고 입력 XML이 표준 입력에서 올 것으로 예상되므로 방해가되는 것으로 보입니다.

-C 옵션을 사용하면 항상 sel 명령 줄의 의미를 XSLT로 가져올 수 있습니다. xmlstarlet 오히려 단지 가치의 XSLT 정의보다 개행 문자에 의해 분리 된 노드 목록의 각 노드의 값 - 중 (1.3 이상) -v가 출력의 최근 버전의


*는 문자열 값을 출력 첫 번째 노드.

+0

음, * match *, 예, for-each와 동일합니다. –

관련 문제