<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    泰仔在線

    java學習,心情日記,繽紛時刻
    posts - 100, comments - 34, trackbacks - 0, articles - 0

    XPath學習教程(轉載)

    Posted on 2006-09-19 16:19 泰仔在線 閱讀(932) 評論(0)  編輯  收藏 所屬分類: Java 相關

    (本文原址:http://blog.csdn.net/linqingfeng/archive/2006/05/02/705230.aspx)
    Xpath介紹
    翻譯:Linyupark / 2006-03-24

    XPath is a language for finding information in an XML document. XPath is used to navigate through elements and attributes in an XML document.
    Xpath是一種能夠在XML文檔中尋找信息的語言。它通過XML文檔中的元素和屬性來進行導航。


    What You Should Already Know
    你應具備的知識

    Before you continue you should have a basic understanding of the following:
    在你繼續前你應該具備以下知識的基礎:

    • HTML / XHTML
    • XML / XML Namespaces[命名空間]

    What is XPath?
    什么是XPath?

    • XPath is a syntax for defining parts of an XML document
      XPath 是針對XML文檔部分內容定義的語法
    • XPath uses path expressions to navigate in XML documents
      XPath 使用路徑表達式在XML文檔中導航
    • XPath contains a library of standard functions
      XPath 包含了一系列標準函數
    • XPath is a major element in XSLT
      XPath 在XSLT當中是一個主要的元素
    • XPath is a W3C Standard
      XPath是W3C標準

    XPath Path Expressions
    XPath 路徑表達式

    XPath uses path expressions to select nodes or node-sets in an XML document. These path expressions look very much like the expressions you see when you work with a traditional computer file system.
    XPath 使用路徑表達式來選擇XML文檔中的nodes(節)或是node-set(節集)。這些路徑表達式看上去與你平時所見的傳統計算機文件系統路徑非常地相似。


    XPath Standard Functions
    XPath 標準函數

    XPath includes over 100 built-in functions. There are functions for string values, numeric values, date and time comparison, node and QName manipulation, sequence manipulation, Boolean values, and more.
    XPath包含了數量超過100的內置函數。這些函數針對字符串值,數字值,日期和時間比較,節操作,順序操作,布爾值,等等。


    XPath is Used in XSLT
    XPath被用在XSLT

    XPath is a major element in the XSLT standard. Without XPath knowledge you will not be able to create XSLT documents.
    在XSLT標準中XPath是主要的元素。沒有XPath知識你將很難建立XSLT文檔。

    XQuery and XPointer are both built on XPath expressions. XQuery 1.0 and XPath 2.0 share the same data model and support the same functions and operators.
    XQuery和XPointer都建立于XPath表達式。XQuery 1.0 和 XPath 2.0共享相同的數據模型并支持相同的函數和操作


    XPath is a W3C Standard
    XPath是W3C標準

    XPath became a W3C Recommendation 16. November 1999.
    XPat于1999年11月16日成為W3C的推薦標準

    XPath was designed to be used by XSLT, XPointer and other XML parsing software.
    XPath被設計成為用語XSLT,XPoniter以及其他XML解析的軟件。

    XPath Nodes(節)
    翻譯:Linyupark / 2006-03-24

    In XPath, there are seven kinds of nodes: element, attribute, text, namespace, processing-instruction, comment, and document (root) nodes.
    在XPath中有七種nodes(節):元素,屬性,文字,命名空間,處理說明,注釋,和文檔(根)節。


    XPath Terminology
    XPath術語

    Nodes/節

    In XPath, there are seven kinds of nodes: element, attribute, text, namespace, processing-instruction, comment, and document (root) nodes. XML documents are treated as trees of nodes. The root of the tree is called the document node (or root node).
    XML文檔被視為數狀的節。樹的根部被稱為文檔的節(或根節)。

    Look at the following XML document:
    觀察下面的XML文檔:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <bookstore>
    <book>
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
    </book>
    </bookstore>

    Example of nodes in the XML document above:
    上面舉例的XML文檔的節有:

    <bookstore>  (document node)
    <author>J K. Rowling</author>  (element node)
    lang="en"  (attribute node)

    Atomic values
    原子值

    Atomic values are nodes with no children or parent.
    原子值是那些沒有子或父的節(無上下關系)。

    Example of atomic values:
    舉例中的原子值:

    J K. Rowling
    "en"

    Items
    項目

    Items are atomic values or nodes.
    項目是原子值或節。


    Relationship of Nodes
    節之間的關系

    Parent/父

    Each element and attribute has one parent.
    每個元素和屬性有一父親。

    In the following example; the book element is the parent of the title, author, year, and price:
    下面的舉例中:book元素是title,author,year和price的父親

    <book>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
    </book>

    Children/子

    Element nodes may have zero, one or more children.
    元素節可能有0個或多個子

    In the following example; the title, author, year, and price elements are all children of the book element:
    下面的舉例中:title,author,year和price元素都是book元素的子元素

    <book>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
    </book>

    Siblings/兄

    Nodes that have the same parent.
    指那些有相同父的

    In the following example; the title, author, year, and price elements are all siblings:
    下面的舉例中title, author, year, 和 price元素都為兄弟

    <book>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
    </book>

    Ancestors/祖

    A node's parent, parent's parent, etc.
    節的父,父的父....都為祖

    In the following example; the ancestors of the title element are the book element and the bookstore element:
    下面的舉例中:book元素和bookstore元素都為title元素的祖元素

    <bookstore>
    <book>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
    </book>
    </bookstore>

    Descendants/孫

    A node's children, children's children, etc.
    節的子,子的子...都為孫

    In the following example; descendants of the bookstore element are the book, title, author, year, and price elements:
    下面的舉例中:bookstore元素的孫有book,title,author,year以及price元素

    <bookstore>
    <book>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
    </book>
    </bookstore>

    XPath語法
    翻譯:Linyupark / 2006-03-24

    XPath uses path expressions to select nodes or node-sets in an XML document. The node is selected by following a path or steps.
    XPath使用路徑表達式來選擇XML文檔的節或是節集。順著路徑或步驟來選擇節。


    The XML Example Document
    XML實例文檔

    We will use the following XML document in the examples below.
    舉例中我們將使用下面的XML文檔

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <bookstore>
    <book>
    <title lang="eng">Harry Potter</title>
    <price>29.99</price>
    </book>
    <book>
    <title lang="eng">Learning XML</title>
    <price>39.95</price>
    </book>
    </bookstore>


    Selecting Nodes
    選擇節

    XPath uses path expressions to select nodes in an XML document. The node is selected by following a path or steps. The most useful path expressions are listed below:
    一些非常有用的路徑表達式:

    表達式 描述
    nodename Selects all child nodes of the node[選擇所有目前節的子節]
    / Selects from the root node[從根節進行選擇]
    // Selects nodes in the document from the current node that match the selection no matter where they are [選擇文檔中相吻合的節而不管其在文檔的何處]
    . Selects the current node[選擇當前節]
    .. Selects the parent of the current node[當前節的父節]
    @ Selects attributes[選擇屬性]

    Examples
    實例

    In the table below we have listed some path expressions and the result of the expressions:
    下面我們所列舉的表格有路徑表達式以及其結果:

    路徑表達式 結果
    bookstore Selects all the child nodes of the bookstore element[選擇所有bookstore元素的子節]
    /bookstore Selects the root element bookstore

    Note: If the path starts with a slash ( / ) it always represents an absolute path to an element!

    [選擇了bookstore的根元素。注意:如果路徑的開始為(/)那此路徑一定是到該元素的絕對路徑]
    bookstore/book Selects all book elements that are children of bookstore[選擇了所有在bookstore的子元素book元素所包含的所有元素(其實就為bookstore里book元素所包含的元素)]
    //book Selects all book elements no matter where they are in the document[選擇所有為book元素的內容而不管book元素處于何處(有不同的父也沒關系)]
    bookstore//book Selects all book elements that are descendant of the bookstore element, no matter where they are under the bookstore element[在bookstore元素內所有含有book元素的元素內容(只要book元素的祖元素為bookstore元素那都符合條件)]
    //@lang Selects all attributes that are named lang[選擇所有屬性名為lang的屬性]


    Predicates
    謂語

    Predicates are used to find a specific node or a node that contains a specific value.
    謂語用來指定明確的節所含有的特殊的值

    Predicates are always embedded in square brackets.
    謂語被嵌入在中括號

    Examples
    舉例

    In the table below we have listed some path expressions with predicates and the result of the expressions:
    下面的表格列舉了一些使用了謂語的路徑表達式以及其產生的結果:

    路徑表達式 結果
    /bookstore/book[1] Selects the first book element that is the child of the bookstore element[選擇了bookstore里的第一個book元素]
    /bookstore/book[last()] Selects the last book element that is the child of the bookstore element[選擇bookstore里最后一個book元素]
    /bookstore/book[last()-1] Selects the last but one book element that is the child of the bookstore element[bookstore中倒數第二個book元素]
    /bookstore/book[position()<3] Selects the first two book elements that are children of the bookstore element[在bookstore中前兩個book元素]
    //title[@lang] Selects all the title elements that have an attribute named lang[選擇所有含有lang屬性的title元素]
    //title[@lang='eng'] Selects all the title elements that have an attribute named lang with a value of 'eng'[選擇所有含有lang屬性并且值為eng的title元素]
    /bookstore/book[price>35.00] Selects all the book elements of the bookstore element that have a price element with a value greater than 35.00[選擇所有bookstore中book元素里price元素內容大于35.00的book元素]
    /bookstore/book[price>35.00]/title Selects all the title elements of the book elements of the bookstore element that have a price element with a value greater than 35.00[選擇bookstore中book的子元素title,并且其兄弟元素price的內容得大于35.00]


    Selecting Unknown Nodes
    選擇未知的節

    XPath wildcards can be used to select unknown XML elements.
    XPath的通配符可以用來選擇未知的XML元素

    通配符 描述
    * Matches any element node[相吻合的所有元素節]
    @* Matches any attribute node[相吻合的所有屬性節]
    node() Matches any node of any kind[吻合任何類型的節]

    Examples實例

    In the table below we have listed some path expressions and the result of the expressions:
    下面的表格我們將列舉一些路徑表達式以及它們的結果

    路徑表達式 結果
    /bookstore/* Selects all the child nodes of the bookstore element[選擇所有bookstore的子節]
    //* Selects all elements in the document[選擇所有文檔中的元素]
    //title[@*] Selects all title elements which have any attribute[選擇元素為title并且其含有屬性]


    Selecting Several Paths
    選擇數個路徑

    By using the | operator in an XPath expression you can select several paths.
    通過在XPath中使用 | 你可以選擇數個路徑

    Examples
    實例

    In the table below we have listed some path expressions and the result of the expressions:
    下面的表格我們會列舉一些路徑表達式以及其結果:

    路徑表達 結果
    //book/title | //book/price Selects all the title AND price elements of all book elements[選擇所有book里title和price元素]
    //title | //price Selects all the title AND price elements in the document[選擇所有title和price元素]
    /bookstore/book/title | //price Selects all the title elements of the book element of the bookstore element AND all the price elements in the document[選擇所有book里的title元素和所有price元素]


    XPath 軸
    翻譯:Linyupark / 2006-03-24

    The XML Example Document
    XML舉例文檔

    We will use the following XML document in the examples below.
    我么將使用該XML文檔進行下面的舉例說明

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <bookstore>
    <book>
    <title lang="eng">Harry Potter</title>
    <price>29.99</price>
    </book>
    <book>
    <title lang="eng">Learning XML</title>
    <price>39.95</price>
    </book>
    </bookstore>


    XPath Axes
    XPath軸

    An axis defines a node-set relative to the current node.
    軸定義了相對于當前節的節集

    軸名 結果
    ancestor Selects all ancestors (parent, grandparent, etc.) of the current node[選擇了當前節的所有祖(父,祖父,等等)]
    ancestor-or-self Selects all ancestors (parent, grandparent, etc.) of the current node and the current node itself[選擇當前節的所有祖并且還有當前節自己]
    attribute Selects all attributes of the current node[選擇所有當前節的屬性]
    child Selects all children of the current node[選擇所有當前節的子]
    descendant Selects all descendants (children, grandchildren, etc.) of the current node[選擇所有當前節的孫(子,孫子,等等)]
    descendant-or-self Selects all descendants (children, grandchildren, etc.) of the current node and the current node itself[選擇當前節的所有孫以及它本身]
    following Selects everything in the document after the closing tag of the current node[選擇所有在關閉當前節標簽后的所有內容]
    following-sibling Selects all siblings after the current node[選擇所有當前節后的兄]
    namespace Selects all namespace nodes of the current node[選擇所有當前節的命名空間]
    parent Selects the parent of the current node[選擇當前節的父]
    preceding Selects everything in the document that is before the start tag of the current node[選擇當前節之前的所有內容]
    preceding-sibling Selects all siblings before the current node[選擇所有當前節之前的兄]
    self Selects the current node[選擇當前節]


    Location Path Expression
    路徑表達試定位

    A location path can be absolute or relative.
    定位路徑可以是絕對的也可以是相對的

    An absolute location path starts with a slash ( / ) and a relative location path does not. In both cases the location path consists of one or more steps, each separated by a slash:
    絕對定位的路徑由(/)開始,而相對定位就不這樣。定位的路徑由一個或多個步驟所組成,每部分由(/)相分隔:

    An absolute location path:
    /step/step/...
    A relative location path:
    step/step/...

    Each step is evaluated against the nodes in the current node-set.
    在當前的節集中每步的賦值是逆向的

    A step consists of:

    • an axis (defines the tree-relationship between the selected nodes and the current node)
    • a node-test (identifies a node within an axis)[在軸中鑒定節]
    • zero or more predicates (to further refine the selected node-set)[0個或多個謂語可以來更好的選擇節]

    The syntax for a location step is:
    定位的語法

    axisname::nodetest[predicate]

    Examples
    實例

    Example 結果
    child::book Selects all book nodes that are children of the current node[選擇當前節點下所有為book的子節點]
    attribute::lang Selects the lang attribute of the current node[選擇當前節點下所有屬性為lang的內容]
    child::* Selects all children of the current node[選擇當前節下所有的子節]
    attribute::* Selects all attributes of the current node[選擇當前節所有的屬性]
    child::text() Selects all text child nodes of the current node[選擇當前節點所有子節點的文字]
    child::node() Selects all child nodes of the current node[選擇所有當前節點的子節點]
    descendant::book Selects all book descendants of the current node[選擇當前節點所有為book的孫節點]
    ancestor::book Selects all book ancestors of the current node[選擇所有當前祖節點為book的節點]
    ancestor-or-self::book Selects all book ancestors of the current node - and the current as well if it is a book node[當前節點和其祖節點為book的節點]
    child::*/child::price Selects all price grandchildren of the current node[當前節點所有含price的孫子節點]

    XPath運算符
    翻譯:無 / 2006-03-24

    An XPath expression returns either a node-set, a string, a Boolean, or a number.


    XPath Operators

    Below is a list of the operators that can be used in XPath expressions:

    Operator Description Example Return value
    | Computes two node-sets //book | //cd Returns a node-set with all book and cd elements
    + Addition 6 + 4 10
    - Subtraction 6 - 4 2
    * Multiplication

    6 * 4

    24
    div Division 8 div 4 2
    = Equal price=9.80 true if price is 9.80
    false if price is 9.90
    != Not equal price!=9.80 true if price is 9.90
    false if price is 9.80
    < Less than price<9.80 true if price is 9.00
    false if price is 9.80
    <= Less than or equal to price<=9.80 true if price is 9.00
    false if price is 9.90
    > Greater than price>9.80 true if price is 9.90
    false if price is 9.80
    >= Greater than or equal to price>=9.80 true if price is 9.90
    false if price is 9.70
    or or price=9.80 or price=9.70 true if price is 9.80
    false if price is 9.50
    and and price>9.00 and price<9.90 true if price is 9.80
    false if price is 8.50
    mod Modulus (division remainder) 5 mod 2 1

    XPath實例
    翻譯:Linyupark / 2006-03-24

    Let's try to learn some basic XPath syntax by looking at some examples.
    讓我們來嘗試通過觀察一些實例來學習基礎的XPath語法


    The XML Example Document

    We will use the following XML document in the examples below.
    我們將使用下面這個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>

    View the "books.xml" file in your browser.


    Selecting Nodes
    選擇節點

    We will use the Microsoft XMLDOM object to load the XML document and the selectNodes() function to select nodes from the XML document:
    我們使用了XMLDOM對象來加載XML文檔并用selectNode()函數來進行XML文檔上節點的選擇:

    set xmlDoc=CreateObject("Microsoft.XMLDOM")
    xmlDoc.async="false"
    xmlDoc.load("books.xml")
    xmlDoc.selectNodes(path expression)


    Select all book Nodes
    選擇所有book節點

    The following example selects all the book nodes under the bookstore element:
    下面這個實例就會選擇所有bookstore元素以下的book節點:

    xmlDoc.selectNodes("/bookstore/book")

    如果你有IE5以上的版本你可以自己來做一下.


    Select the First book Node
    選擇第一個book節點

    The following example selects only the first book node under the bookstore element:

    xmlDoc.selectNodes("/bookstore/book[0]")

    If you have IE 5 or higher you can try it yourself.

    Note: IE 5 and 6 has implemented that [0] should be the first node, but according to the W3C standard it should have been [1]!!


    Select the prices
    選擇prices

    The following example selects the text from all the price nodes:

    xmlDoc.selectNodes("/bookstore/book/price/text()") 

    If you have IE 5 or higher you can try it yourself.


    Selecting price Nodes with Price>35
    選擇price大于35的price節點

    The following example selects all the price nodes with a price higher than 35:

    xmlDoc.selectNodes("/bookstore/book[price>35]/price") 

    If you have IE 5 or higher you can try it yourself.


    Selecting title Nodes with Price>35
    選擇Price大于35的title節點

    The following example selects all the title nodes with a price higher than 35:

    xmlDoc.selectNodes("/bookstore/book[price>35]/title") 

    If you have IE 5 or higher you can try it yourself.

    主站蜘蛛池模板: 69成人免费视频| 99在线视频免费| 国产一区在线观看免费| 亚洲一区二区三区在线| 欧洲一级毛片免费| 亚洲伊人色一综合网| 美女视频黄免费亚洲| 91亚洲自偷在线观看国产馆| 精品国产无限资源免费观看| 亚洲大香人伊一本线| 最近中文字幕无吗免费高清 | 亚洲人成人77777网站| 久久国产一片免费观看| 亚洲人成网77777色在线播放| 99在线免费观看| 亚洲资源在线观看| 18未年禁止免费观看| 亚洲黄片手机免费观看| 国产国拍亚洲精品福利 | 亚洲视频国产视频| 毛片大全免费观看| 色屁屁在线观看视频免费| 久久亚洲AV无码西西人体| 在线涩涩免费观看国产精品 | 免费吃奶摸下激烈视频| 在线看片免费人成视频久网下载 | 国产精品高清视亚洲精品| 国产精品福利在线观看免费不卡| 久久亚洲精品无码观看不卡| 无码中文字幕av免费放dvd| 亚洲六月丁香六月婷婷蜜芽| 日韩免费高清一级毛片在线| 久久久久亚洲av无码专区导航 | 中文字幕乱理片免费完整的| 久久精品蜜芽亚洲国产AV| 四虎免费在线观看| 中文字幕在线免费视频| 亚洲av日韩av无码av| 亚洲一区精品伊人久久伊人| 亚洲第一网站免费视频| 男男gvh肉在线观看免费|