2014-12-11 1 views
2
내가이

xml을 xmllint에 파일 대신 변수로 전달하는 방법은 무엇입니까? >

xmllint --xpath "//filestodelete[filename = somename]/text()" #filestodelete# 

및 filestodelete을 수행 할

유형의 XML

의 BPEL 변수이지만

방법이 작업을 수행 할 작동하지 않습니다? POSIX 쉬으로

xmllint --xpath "$query" - <<<"$filestodelete" 

: 당신이 herestring를 사용할 수 떠들썩한 파티와

- 당신을 가정

+0

셸 변수에 XML 문서가 있습니까? –

+1

필자는 대답에서 BPEL 변수가 쉘 변수로 노출되어 있다고 가정합니다. 이것이 사실이 아닐 경우, 셸 질문뿐만 아니라 BPEL 질문을 가지며 적절하게 태그를 지정해야합니다. –

+0

예 쉘에서 BPEL 변수를 사용할 수있는 프레임 워크를 사용 중입니다 ... filestodelete 변수가 xml 유형의 BPEL 변수라는 것을 의미합니다. 그러나 그것은 시스템에있는 파일이 아닙니다. – sakal

답변

6

는 (내 예 terser를 만들기 위해) query라는 쉘 변수에 쿼리 텍스트를 넣었습니다 당신이 히어 닥 사용할 필요가 : 그건 그렇고

xmllint --xpath "$query" - <<EOF 
$filestodelete 
EOF 

을 - xmllint 지원 --xpath의 모든 버전 이후로, 당신은 할 수있을 것

xmlstarlet sel -t -m "$query" -v . <<<"$filestodelete" 
+0

그래서 로컬 unix 시스템에서 물리적으로 변수가 아닌 xml로이 작업을 수행합니까? – sakal

+0

'$ filestodelete'는 파일 이름이 아닌 XML을 사용하는 변수가 될 것으로 예상됩니다. 물론 그렇습니다. 물론 그렇습니다. –

+0

어쩌면 내가 잘못했는지, filestodelete는 xsd 형식의 문서이며 ... workfow 변수가 아니라 드라이브의 실제 파일이 아닙니다. – sakal

관련 문제