2009-07-22 2 views
2

이 시나리오 고려 속성 값을 기반으로 노드를 선택 : 비 브라우저 사용 시나리오에서 자바 스크립트/E4X를 사용자바 스크립트 E4X는 :

(자바 스크립트 HL7 통합 엔진)는 XML 조각을 들고 변수가 여러 개의 반복 노드가있을 수 있습니다.

<pets>  
<pet type="dog">Barney</pet> 
<pet type="cat">Socks</pet> 
</pets> 

코드 :

var petsXml; // pretend it holds the above xml value 
//var cat = petsXml['pet']..... ? 

질문 : E4X를 사용하여, 당신은 문자열 '고양이'의 값을 들고 type 속성을 가진 올바른 애완 동물 노드를 선택하는 방법?

업데이트 : E4X와

어떤 교훈 : 한 노드의 특정 속성의 값을 얻기 위해 var dog = petsXml.(@type == "dog");

  • :

    • 는 속성 값에 의해 단일/첫 번째 노드를 선택 var petType = [email protected];
  • 답변

    2
    var petsXml; 
    var catList = petsXml.*.(@type == "cat"); 
    

    "필터"here 또는 "파라미터 화 된 위치 지정"here을 참조하십시오.

    +0

    Pianoman에게 감사드립니다. 그게 잘 됐어. petsXml로 솔루션을 성공적으로 구현했지만 (@ type == "cat"); 별표는 배수가 반환된다는 것을 나타내지 만 첫 번째 일치가 없으면 나타납니다. –

    +0

    당신은 절대적으로 옳습니다. '*'는 모든 '' 노드를 스캔해야하고, cat>이 1 개 이상이면'catList'가 배열이 될 수 있습니다. –