2012-09-21 8 views
1

나는 다음과 같은 XML 구문이 있습니다없습니다

<Properties> 
    <Property> 
     <Name>Author</Name> 
     <Type>Object</Type> 
     <Value>somevalue</Value> 
    </Property> 
    <Property> 
     <Name>Title</Name> 
     <Type>String</Type> 
     <Value>Word files</Value> 
    </Property> 
    <Property> 
     <Name>Path</Name> 
     <Type>String</Type> 
     <Value>/path/subfolder/directory/somevalue.doc</Value> 
    </Property> 
    <Property> 
     <Name>Rank</Name> 
     <Type>Int64</Type> 
     <Value>804</Value> 
    </Property> 
    <Property> 
     <Name>Size</Name> 
     <Type>Int64</Type> 
     <Value>0</Value> 
    </Property> 
</Properties> 

기본적으로 1 개 등의 속성 집합 이잖아 내가 약 10 개를 가지고 있습니다. Value 노드의 텍스트와 Name 태그 [Author, Title, Path, Rank, Size]에 포함 된 text()를 기준으로 텍스트에 액세스해야합니다. 기본적으로 내 XPathQueries는 태그 텍스트 세트를 반환합니다.

그것은 내 방식이 같다 :

XPathQuery ("// 속성/이름 // * 텍스트() = '저자']/형식/값");

하지만 그건 사람을 작동하지 않습니다! 그리고 지금은 그것이 중요한 경우 내가 자바 프로그래밍 해요 사촌, 내가 자바 XPath는 라이브러리를 사용하고, 공식적으로 내 머리 떨어져 :(

을 찢어에서 20 분 거리입니다.

+0

당신이 코드를 사용하고 있습니까? 질문을 이해하기 위해 +1 – Satya

답변

1
Properties/Property [Name = 'Author']/Value 
+0

+1! – MiMo

+0

음. 그런데 올바른 파일 경로입니까? 나는 Path가 Properties/Property [Name = 'Author']/Type/Value가 아니어야한다는 것을 의미합니까? – user1020069

0

아니에요 . 당신이 뭘 하려는지 100 % 확실 당신이 원하는 것은 <Name>에 지정된 텍스트와 속성에 대한 <Value> 태그의 텍스트 인 경우, 나는이 (Author에 대한) 작동합니다 생각 :

//Property[./Name[contains(.,'Author')]]/Value/text() 
#=> "somevalue" 

저는 J를 제외한 nokogiri/ruby를 사용하고 있습니다. 그래도 나는 이것이 당신의 셋업과 함께 작동한다는 것을 확신 할 수 없다.

+0

오 마침내 @ Marko의 대답도 실현. –

0

사용 :

/*/Property[Name = 'Author']/Value