2017-12-22 2 views
1

나는 "adc"로 출력을 제공겠습니까 리눅스xmlstarlet 아동 문자열 값을 기반으로 간단한 선택을 위해 작동하지

xmlstarlet sel -t -m 'bookstore/author [1]' -n books.xml 

에 xmlstarlet 사용

<bookstore> 
    <book category="cooking"> 
     <title lang="en">Everyday Italian</title> 
     <author>adc</author> 
     <year>2005</year> 
     <price>30.00</price> </book> 
    <book category="children"> 
     <title lang="en">Harry Potter</title> 
     <author>xyz</author> 
     <year>2005</year> 
     <price>29.99</price> </book> 
</bookstore> 

같은 XML 파일을하고 있어요,하지만 난 방법을 찾을 수 있습니다 필드는 내가 이미 값을 알고있을 때?

나는 작가 태그에 값이 "adc" 인 것을 알고 있습니다. x은 어떻게 찾을 수 있습니까?

답변

0

내가 답을 찾을 검색 및 xmlstarlet 사용

여기
xmlstarlet -t -c 'bookstore/book[author="adc"]' -n books.xml 

서점/책에 필드에서 값을 선택하려면 같은

에 걸쳐 다른 사람 비틀 거림에 떠나 약간은 노드의 전체 경로를 후 저자가 포함 된 글꼴 [저자 = 값]은 저자가 특정 값을 갖는 노드 만 선택하는 데 사용됩니다. books.xml은 XML 파일입니다.

다른 사람들이 더 잘 설명 할 수는 있지만 희망을 찾을 수는 있습니다. 이것은 약간의 도움이

+0

당신의 XPath는 자식'author' 엘리먼트가 자식'adc' 엘리먼트와 같은 모든'bookstore/book' 엘리먼트를 선택한다고 말합니다. 'adc'에 대해 따옴표가 누락되었습니다. 또한 XMLStarlet에서 XPath를 사용하는 방법에 대한 많은 Q/A가 있습니다. 한 가지 예를 들어 중복 링크를 참조하십시오. – kjhughes

+0

@kjhughes Thnx 도움에 대한 답변을 수정하고 중복을 사용할 수 없어 추가했습니다. – Solaris

관련 문제