2014-04-18 2 views
-1
난 그냥 내 XML

LIBXML 속성 요소 값

findnodes(/measValue[@measObjLdn='XYZ')]) 

내가 얻을 오류로 Global symbol "@measObjLdn" requires explicit package name

으로부터

< measValue measObjLdn='XYZ' > 

에서 속성 measValue을 일치시킬 간단한 findnodes이

나는 @가 나타나서 오류가 발생한다. XPath error : Invalid predicate

findnodes(/measValue[\@measObjLdn='XYZ')]) 

또한 그때 변수로

my $mv=measValue; 

my $mn=measObjLdn; 

findnodes(/$mv["\@". "$mn"='XYZ')]) 

이에 대한 모든 솔루션을 감상 할 수있다 그것의 더 나쁜 measValue 및 measObjLdn을 할 때.

+0

$xml->findnodes("/measValue[\@measObjLdn='XYZ')]") 
(https://metacpan.org/pod/distribution/XML-LibXML/lib/XML/LibXML /XPathContext.pod). XPath 표현식의 모든 예가 따옴표로 묶인 문자열임을 알 수 있습니다. –

답변

3

당신의 XPath는 문자열에 있어야합니다 :

당신은 [문서]에 더 많은 관심을 지불해야
+0

그리고 작은 따옴표로 묶는 경우,'@':-)을 벗어날 필요조차 없습니다. –

+0

실제로, "measValue 및 measObjLdn을 변수로 만들 때"부분을 복잡하게 만듭니다. – tobyink

관련 문제