2013-06-26 2 views
0

bash 스크립트에서 xml 파일의 속성을 가져와야하지만 xmllint - xpath도 xmlstarlet도 사용할 수 없습니다. 왜냐하면 내가 작동하는 서버에서 사용할 수 없기 때문입니다.bash 스크립트에서 xml 속성에 액세스

나는 grep, cut 및 sed로 솔루션을 시도했지만 오랜 시간 동안 좋은 해결책이 아닙니다.

시스템에서 사용할 수 grep_xml가있다,

를이 내 xml 파일

되어 나는 그것으로 요소를 액세서 수 있지만 내 속성에 액세스하려고 해요 때 나는 "핸들러에서 오류가 인식 할 수없는 표현" 를 얻을 수
<?xml version="1.0" standalone="yes"?> 
<p4codeline xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="p4codeline_1_1.xsd"> 
    <module name="kpreader" currentVersion="kpreader_1.1STD0" previousVersion="kpreader_1.0STD0"> 
    <codeline owner="undefined" path="//HEP/jcas/kpreader/trunk/..."> 
     <namingConvention/> 
     <description>Main codeline for development</description> 
     <rules> 
     <rule>Develop on MAIN, and create a TAG codeline on release</rule> 
     <rule>Never broke the build on the MAIN</rule> 
     </rules> 
    </codeline> 
    <externals> 
     <external viewPath="J2ep_BuildTools/..." codeLine="//CT/JAVA/J2ep_BuildTools/Source/tags/J2EP_BUILDTOOLS_1.6STD0/..." depotPath="."/> 
    </externals> 
    </module> 
</p4codeline> 

및 나는 bash 또는 명령을 기반으로 솔루션을 사용하여 코드 라인의 경로 특성에 액세스해야합니다.

xml_grep -t '/p4codeline/module/codeline/@path' file.xml 

과 같은

내가 해봤 뭔가가 나에게 일반적으로 이동이 일들로

error: unrecognized expression in handler: '/p4codeline/module/[email protected]' at /usr/bin/xml_grep line 183 
+3

예에 크게 의존 어둠 속에서 우리를 버리지 마라. 의사에게 가면 "아야!"라고 말하지 마라. 구체적으로 말하십시오. – Jens

+0

입력 내용은 무엇이며 지금까지 무엇을 시도 했습니까? 인쇄 된 내용과 인쇄 할 것으로 예상 된 내용은 무엇입니까? 세부 사항이 더 필요합니다. – l0b0

+0

이 경우 Perl + XML 파서를 선택합니다. – m0skit0

답변

1

을 answear,이 명령은, 귀하의 의견

$ awk '/path/ {print $4}' FS='"' file.xml 
//HEP/jcas/kpreader/trunk/...