2014-03-13 3 views
0

XPath 구문을 익히려고합니다. 나는 여기에 W3Schools의 예를 사용하고 다음 XML을 기반으로 요식XPath에서 필터링 된 노드 집합의 특성 선택

http://www.w3schools.com/xsl/tryit.asp?filename=try_xpath_select_pricenodes_high

:

<?xml version="1.0" encoding="UTF-8""?> 

<bookstore> 

<book category="COOKING"> 
    <title la="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> 

</bookstore> 

예는 35 I보다 가격을 더 가진 책의 제목을 선택 이 예제를 가지고 노는 대신 제목 대신 범주 이름을 선택하고 싶었습니다. 그래서, 나는이 시도 : 해당 사이트에 직접 테스트하여 볼 수 있듯이,

/bookstore/book[price>35]/@category 

를, 그것은 어떤 출력을 생성하지 않습니다. 나는 무엇이 잘못 되었는가?

감사합니다.

+0

귀하의 예에는 35보다 큰 가격의 도서가 없습니다. 오타입니까? –

답변

1

쿼리가 정상입니다. 그러나 요소가 아닌 속성 노드를 다루기 때문에 결과를 인쇄하는 코드를 조정해야합니다.

document.write(nodes[i].nodeValue); 
document.write(result.nodeValue); 

에 선

document.write(nodes[i].childNodes[0].nodeValue); 
document.write(result.childNodes[0].nodeValue); 

을 변경하면 예상 된 결과를 얻을 수 있습니다.

+0

아하! 나는 거의 머리카락을 뽑아 내고, 그렇게 간단한 예제를 얻을 수 없었다! 감사! – BigErn77