2013-02-19 2 views
0

내가 각 항목에 대한 판매 가격을 *하고 싶은XPATH에서 값을 곱하는 방법은 무엇입니까?

<item price='n' sold='m'> 
... 
</item> 

의 무리가 있다고 가정. 파이썬에서 내부 LXML에서

'//item/(@price * @sold)' 

을 시도하고 있지만 오류를 '잘못된 표현' 점점 계속. xmllint 명령에서도 마찬가지입니다. 하지만 같은 쿼리는 Oxygen xml 편집기에서 작동합니다.

어떻게하면됩니까?

답변

0

XPath 2.0에서 계산을 완료 할 수 있습니다!

가격이 판매 가격의 2 배보다 낮거나 같은 모든 것을 선택하려는 경우 가능합니다. 다음을 참조하십시오 : http://en.wikipedia.org/wiki/XPath#Number_functions

+1

Downvoting 평가 대답이 구문에서 유효 있다는 점을 그리워 XPath 2.0. –

5

사용중인 XPath 표현식에 XPath 2.0이 필요합니다. (XPath 버전을 1.0으로 설정하고 쿼리를 다시 시도하여 산소에서이를 확인할 수 있습니다.) lxml이 XPath 2.0을 지원하지 않는다고 생각합니다.

  • 이 XPath는, 예를 들어,에서 <item> 요소를 선택 : 당신이 XPath는 2.0을 지원하는 라이브러리를 얻을 수없는 경우 대신 모든 내부 XPath를하려고 노력의에

    , 다음, 당신은해야합니다 , //item

  • 루프 각 <item> 요소의 문맥
  • 파이썬
  • 이러한 요소를 통해 XPath 식을 이용하여 XPath 식을 @price * @sold
+0

귀하의 신속한 답변을 주셔서 감사합니다. 다른 답변은 타이밍을 기준으로 만 올바른 것으로 선택했습니다. 다시 한번 감사드립니다. – Karthick

+0

@ Karthick : 천만에요. 수락 (체크 표시)에 관해서 - 나는 당신이 다른 대답을 선택 했어도 괜찮습니다. 그러나 일반적으로 나는 첫 번째 대답을 "받아 들여야"하는 것처럼 느껴지지 않는다고 말할 것입니다. 이 사이트는 빠른 정보뿐만 아니라 도움이되고 정확한 답변을 얻으 므로써 더 가치가있을 것입니다. – LarsH

관련 문제