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 Îĵµ

ËùÓÐÏÖ´úä¯ÀÀÆ÷¶¼Ö§³ÖʹÓà XMLHttpRequest À´¼ÓÔØ XML ÎĵµµÄ·½·¨¡£

Õë¶Ô´ó¶àÊýÏÖ´úä¯ÀÀÆ÷µÄ´úÂ룺

var xmlhttp=new XMLHttpRequest()

Õë¶Ô¹ÅÀϵÄ΢Èíä¯ÀÀÆ÷£¨IE 5 ºÍ 6£©µÄ´úÂ룺

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

ѡȡ½Úµã

²»ÐÒµÄÊÇ£¬Internet Explorer ºÍÆäËû´¦Àí XPath µÄ·½Ê½²»Í¬¡£

ÔÚÎÒÃǵÄÀý×ÓÖУ¬°üº¬ÊÊÓÃÓÚ´ó¶àÊýÖ÷Á÷ä¯ÀÀÆ÷µÄ´úÂë¡£

Internet Explorer ʹÓà selectNodes() ·½·¨´Ó XML ÎĵµÖеÄѡȡ½Úµã£º

xmlDoc.selectNodes(xpath);

Firefox¡¢Chrome¡¢Opera ÒÔ¼° Safari ʹÓà evaluate() ·½·¨´Ó XML ÎĵµÖÐѡȡ½Úµã£º

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

ѡȡËùÓÐ title

ÏÂÃæµÄÀý×ÓѡȡËùÓÐ title ½Úµã£º

/bookstore/book/title

Ç××ÔÊÔÒ»ÊÔ

ѡȡµÚÒ»¸ö book µÄ title

ÏÂÃæµÄÀý×Óѡȡ bookstore ÔªËØÏÂÃæµÄµÚÒ»¸ö book ½ÚµãµÄ title£º

/bookstore/book[1]/title

Ç××ÔÊÔÒ»ÊÔ

ÕâÀïÓÐÒ»¸öÎÊÌâ¡£ÉÏÃæµÄÀý×ÓÔÚ IE ºÍÆäËûä¯ÀÀÆ÷ÖÐÊä³ö²»Í¬µÄ½á¹û¡£

IE5 ÒÔ¼°¸ü¸ß°æ±¾½« [0] ÊÓΪµÚÒ»¸ö½Úµã£¬¶ø¸ù¾Ý W3C µÄ±ê×¼£¬Ó¦¸ÃÊÇ [1]¡£

ΪÁ˽â¾ö IE5+ ÖÐ [0] ºÍ [1] µÄÎÊÌ⣬¿ÉÒÔΪ XPath ÉèÖÃÓïÑÔÑ¡Ôñ£¨SelectionLanguage£©¡£

ÏÂÃæµÄÀý×Óѡȡ bookstore ÔªËØÏÂÃæµÄµÚÒ»¸ö book ½ÚµãµÄ title£º

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

Ç××ÔÊÔÒ»ÊÔ

ѡȡËùÓм۸ñ

ÏÂÃæµÄÀý×Óѡȡ price ½ÚµãÖеÄËùÓÐÎı¾£º

/bookstore/book/price/text()

Ç××ÔÊÔÒ»ÊÔ

ѡȡ¼Û¸ñ¸ßÓÚ 35 µÄ price ½Úµã

ÏÂÃæµÄÀý×Óѡȡ¼Û¸ñ¸ßÓÚ 35 µÄËùÓÐ price ½Úµã£º

/bookstore/book[price>35]/price

Ç××ÔÊÔÒ»ÊÔ

ѡȡ¼Û¸ñ¸ßÓÚ 35 µÄ title ½Úµã

ÏÂÃæµÄÀý×Óѡȡ¼Û¸ñ¸ßÓÚ 35 µÄËùÓÐ title ½Úµã£º

/bookstore/book[price>35]/title

Ç××ÔÊÔÒ»ÊÔ