2013-02-08 3 views
3

사용할 수있는 태그 목록을 반환하는 xmllint (Bash 셸 스크립트 내에서 사용) 프로그램에서 사용할 XPath 인수를 생성하려고합니다. 태그 (하위 태그를 나열하지 않음). 이 XML은 배쉬 변수 functionInformation에 저장됩니다사용 가능한 태그를 재귀 적으로 나열하는 XPath

<functionInformation> 
    <class> 
     setup 
    </class> 
    <description> 
     This is a natural language description of this function. 
    </description> 
    <prerequisiteFunctions> 
     myFunction1 
     myFunction2 
    </prerequisiteFunctions> 
    <prerequisitePrograms> 
     myProgram1 
     myProgram2 
    </prerequisitePrograms> 
</functionInformation> 

:

여기에 내가 가지고있는 XML의 일종입니다.

나는이 XML에 xmllint가를 사용하는 경우하고 싶은 출력은 다음

class 
description 
prerequisiteFunctions 
prerequisitePrograms 

은 내가 (나는 모든 원하지 않는 태그가 아닌 재귀 방식으로 반환하려는 점에 유의해야한다 사용 가능한 태그 또는 하위 태그).

나는 다음과 같은 방법으로 xmllint가를 사용하여 태그 정보에 액세스 할 수 있습니다

descriptionFunctionInformation="$(echo "${functionInformation}"\ 
       | xmllint --xpath '/functionInformation/description/text()' -\ 
       | xargs -i echo -n "{}")" 

당신은 내가하는 XPath (또는 비슷한)가를 반환을 구축 할 수있는 방법에 대한 올바른 방향으로 날 지점 수 필요한 정보?

답변

1

당신은 xmlstarlet를 사용할 수 있습니다

xmlstarlet sel -t -m '/*/*' -v 'concat(name(.)," ")' < xmlfile 
+0

이 중대하다. 도와 주셔서 대단히 감사합니다! – d3pd

관련 문제