Latest web development tutorials

XPath를 예

이 섹션에서 우리는 몇 가지 기본의 XPath 구문 예제를 배울 수 있습니다.


XML 인스턴스 문서

우리는 다음과 같은 예에서이 XML 문서를 사용합니다 :

"Books.xml을"

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>

<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>

<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>

<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>

</bookstore>

브라우저에서보기 "Books.xml을"파일 .


XML 문서를로드

모든 최신 브라우저는 XML 문서를로드 할 XMLHttpRequest 객체의 사용을 지원합니다.

대부분의 최신 브라우저 코드 :

var xmlhttp=new XMLHttpRequest()

코드의 (IE 5, 6) 기존의 마이크로 소프트 브라우저의 경우 :

var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")


선택 노드

불행하게도, Internet Explorer 및 처리의 XPath의 기타 다른 방법.

이 예에서, 대부분의 주요 브라우저 코드를 포함 하였다.

Internet Explorer에서 노드를 선택하기 위해 XML 문서에서 selectNodes () 메서드를 사용하여

xmlDoc.selectNodes(xpath);

파이어 폭스, 크롬, 오페라와 사파리는 XML 문서에서 노드를 선택하기 위해 평가 () 메서드를 사용합니다 :

xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE,null);


모든 제목을 선택

다음 예는 모든 타이틀 노드를 선택 :

/bookstore/book/title

»시도


책의 첫 번째 제목을 선택

다음 예는 제 책 노드 제목 아래 서점 요소를 선택

/bookstore/book[1]/title

»시도

문제가 있습니다. IE와 다른 브라우저에서 다른 결과의 위의 예.

IE5하고 나중에 [0]은 첫 번째 노드로 간주하고 있어야 W3C 규격에 의한 [1].

하나의 솔루션!

IE5 + [0] 및 [1]이 문제의하면는 XPath (SelectionLanguage) 언어 선택을 설정할 수 해결하기 위해.

다음 예는 제 책 노드 제목 아래 서점 요소를 선택

xml.setProperty("SelectionLanguage","XPath");
xml.selectNodes("/bookstore/book[1]/title");

»시도


모든 요금 선택

다음 예는 모든 텍스트 노드의 가격을 선택합니다 :

/bookstore/book/price/text()

»시도


가격이 가격이 노드 (35)보다 높은 선택

다음 예는 노드 (35)의 가격보다 높은 가격을 모두 선택

/bookstore/book[price>35]/price

»시도


노드 가격을 선택하면보다 높은 35 제목입니다

하기 실시 예는 35 이상 모든 표제 노드 가격 선택

/bookstore/book[price>35]/title

»시도