顯示具有 tools - xml 標籤的文章。 顯示所有文章
顯示具有 tools - xml 標籤的文章。 顯示所有文章

2009年7月20日 星期一

xpath


xpath -- a script to query XPath statements in XML documents.
xpath算是command line的xml查詢工具。
假設有個xml檔(book.xml)內容如下:
<?xml version="1.0"?>
<root>
    <book>
        <name>b1</name>
        <auth>Brook</auth>
        <price>$10</price>
    </book>
    <book>
        <name>b2</name>
        <auth>Brook</auth>
        <price>$15</price>
    </book>
    <store location="tw" tel="0921" name="Dr.B">
</root>

使用'/A/B'尋找A底下的B。
brook@desktop:~$ xpath -e '/root/book' -q book.xml
<book>
        <name>b1</name>
        <auth>Brook</auth>
        <price>$10</price>
    </book>
<book>
        <name>b2</name>
        <auth>Brook</auth>
        <price>$15</price>
    </book>
brook@desktop:~$ xpath -e '/root/book[1]/name' -q book.xml
<name>b1</name>
brook@desktop:~$ xpath -e '/root/book[2]/name' -q book.xml
<name>b2</name>

使用//xx則會尋找xx這個tag,不管在哪個節點位置。
brook@desktop:~$ xpath -e '//name' -q book.xml
<name>b1</name>
<name>b2</name>

使用@xx取得xx的attribute。
brook@desktop:~$ xpath -e '/root/store/@name' -q book.xml
 name="Dr.B"

使用text()取得node的內容。
brook@desktop:~$ xpath -e '//book[1]/name/text()' -q book.xml
b1

其他用法請參考:
http://www.w3.org/TR/xpath
http://zh.wikipedia.org/wiki/XPath