2012-04-07 2 views
0

xmllint를 사용하여 일부 값을 추출해야하는 작은 xml 문서가 있습니다. xmllint --shell xmlfilename 명령을 사용하여 xml 계층 구조를 탐색 할 수 있습니다. 그러나 값을 추출 할 수 없습니다. grep/any 패턴 일치 명령을 사용하고 싶지 않습니다. 이미 완료되었으므로 성공합니다. 나는 xmlliint에 관한 어떤 도움도 감사 할 것이다. 다음은 png 형식의 내 문서입니다. 300 달러와 500 달러 ('가치')를 추출하고 싶습니다.xmllint를 사용하여 xml 파일에서 데이터 추출

<?xml version="1`.`0" encoding="ISO-8859-1"?> 
<adi> 
    <asset> 
     <electronics item="Mobile" name="Nokia" value="300$" /> 
     <electronics item="Mobile" name="Sony" value="500$" /> 
    </asset> 
</adi> 

다른 세트는 동일한 xml의 다른 표현입니까?

<?xml version="1.0 encoding="ISO-8859-1"?> 
<adi> 
    <asset> 
     <electronics> 
      <item> Mobile </item> 
      <name>Nokia</name> 
      <value>300$</value> 
     </electronics> 
     <electronics> 
      <item> Mobile </item> 
      <name>Sony</name> 
      <value>500$</value> 
     </electronics> 
    </asset> 
</adi> 
+1

이러한 종류의 작업을 위해 xmlstarlet을 살펴보십시오. 또는 태그를 롤오버 할 때 태그의 하단 수를 기록하고 xml 또는 xmlstarlet에 태그를 추가하십시오. 행운을 빕니다. – shellter

답변

-1

늦은하지만 잠시 태그 xmllint가 경기 첫 페이지, 내가 지금 대답을 검색) 아래

xmllint --xpath '//electronics/value/text()' second-xml_file.xml 
+1

xpath가 작동하지 않습니다. –

+0

xpath 작동, 깨진 xml 소스입니다. 첫 번째 줄에 누락 된'''이 보이는지 확인하십시오. –

+5

xmllint에서 xpath 옵션을 사용할 수 없다는 메시지가 나타납니다. –

0

같은 --xpath 대신 --xpath의

사용 귀하의 두 번째 질문에 관해서는, 그 두 발췌 문장은 이 아니며은 동일한 XML 콘텐츠를 나타냅니다. 속성과 자식 요소는 동일하지 않습니다. 하위 요소는 임의의 XML 트리의 루트 요소 일 수 있지만 속성은 원 자성입니다.

<?xml version="1.0 encoding="ISO-8859-1"?> 
<adi> 
    <asset> 
     <electronics> 
      <item> 
       Mobile 
       <sub-item>Phone</sub-item> 
      </item> 
      <name>Nokia</name> 
      <value>300$</value> 
     </electronics> 
     <electronics> 
      <item> Mobile </item> 
      <name>Sony</name> 
      <value>500$</value> 
     </electronics> 
    </asset> 
</adi> 

내가 처음 <item> 요소에 <sub-item>Phone</sub-item>를 추가 한 :

예를 들어,이 같은 두 번째 조각을 수정할 수 있습니다. 그러나 첫 번째 스 니펫에서와 같이 item이 속성 인 경우 이에 상응하는 항목이 없습니다.