2010-01-14 3 views

답변

2
..element.([email protected] == "val") 
+0

@attr 속성없이 주요 요소가있는 경우 어떻게됩니까? 나는 XPath가 그 노드를 반환하지 않는다는 것을 알고 있지만 단순한 표현식에 대한 애트리뷰트 에러 타입이없는 e4x 크레이터를 안다. 그 일이 여기에서도 일어날까요? –

+0

내 경험에 속성이없는 경우 아무 것도 반환되지 않으며 오류가 발생하지 않습니다. – invertedSpear

+0

이로 인해 AS3에서 문제가 발생하지 않습니다. JavaScript에는 한 가지 문제가 있습니다. 애트리뷰트가 필터에 자식 노드 (존재 여부에 관계없이)에서 검사되는 동안 오류가 발생하지 않습니다. 모든 요소가'bar' 속성을 가지고있는 것은 아니므로'.. (@ bar == "baz")'는 오류를 던질 것이므로'.. (function :: attribute ("bar") == " baz ")'를 사용합니다. –

2
xmlVarName.element.list.key.(@attr=="val"); 

대안

xmlVarName..key.(@attr=="val"); 
+0

아니요, 키 노드를 반환합니다. xpath 내가 보여준 특정 키 속성을 가진 요소 노드를 반환합니다. –

+0

'// 요소'는'.element' ('/ element')가 아닙니다. 그것은'..element' 일 것입니다. –

+0

내가 뭘 찾고 있었는지 오해했습니다. 죄송합니다. xpath에 익숙하지 않았습니다. 엘리야는 대답이 있습니다. 또 다른 방법은 xmlVarName.element.list.key (@ attr == "val"). parent(). parent()와 같은 parent() 메서드를 호출하는 것입니다 (Elijah 's는 더 깨끗합니다). – invertedSpear

1

노드가 모든이 @attr을 할 경우는

..element.([email protected] == "val") 

이 실패 할 수 있다는 점에 유의해야합니다.

노드 목록을 추출하는 가장 안전한 방법은 100 % 성공한 것이 아니지만 가장 안전합니다.

..element.(list.key.attribute("attr") == "val") 

그러나, 나는 E4X와 조건식 (AS3 구현, 모질라가 더 나은 것 같다.)하지만 아래로 XML 소스 것 같다 문제가 있었다.

관련 문제