2014-03-14 4 views
0

XML 형식의 파일을 CSV 형식 (일반적인 구분 기호로 한 줄에 출력하는 형식)으로 변환하려고합니다. 꽤 문법 권리를 얻을 수 없다, 아무도 제발 도와 줄 수 있습니까?xmlstarlet을 사용하여 XML에서 선택 - 구문 쿼리

<?xml version="1.0" encoding="UTF-8"?> 
<TranslationTable> 
     <Translation Key="Document1" RelativePath="/home/path1"> 
       <Title>Doc1</Title> 
       <Description>First document</Description> 
     </Translation> 
     <Translation Key="Document2" RelativePath="/home/path2"> 
       <Title>Doc2</Title> 
       <Description>Second document</Description> 
     </Translation> 
</TranslationTable> 

그리고 현재 내 명령이

xmlstarlet sel -t -m //Translation -v @Key -o "|" -v @RelativePath -n /root/XML/file.xml 
Document1|/home/path1 
Document2|/home/path2 

입니다하지만 제가 원하는 것은 출력이되도록 또한, 제목 필드의 내용을 포함 : XML은 다음과 같습니다 like

Document1|/home/path1|Doc1 
Document2|/home/path2|Doc2 

아무도 도와 줄 수 있습니까? 감사.

답변

1

XPath입니다 : 보인다

xmlstarlet sel -t -m //Translation -v @Key -o "|" -v @RelativePath -v 'Title/text()' -n /root/XML/file.xml 
+0

트릭, 많은 감사를했을 수 있습니다. – user3419089

+0

당신을 진심으로 환영합니다. xmlstarlet의 '언어'가 더 쉬웠 으면 좋겠다. – reinierpost