爬虫類xpathデータを理解して簡単に運用します.
2408 ワード
爬虫類xpathデータを理解して簡単に運用します.
まず、xpathとは、テンプレート言語の文字列形式を指定したデータキャプチャであるということを理解させていただきます.簡単に言うと、先端から取得した文字列データの中から、あなたが欲しいデータ2、xpathの文法XPTathをパス式でXMLドキュメントのノードまたはノードセットを選択します.ノードは、経路(path)またはステップ(steps)に沿って選択される.分かりやすいように、xpathの文法を以下の例で説明します.
最も有用なパス表現を以下に示します.
表式
説明
nodename
このノードのすべてのサブノードを選択します.
を選択します.
ルートノードから選択します.
//
選択された現在のノードにマッチしてドキュメント内のノードを選択します.位置を考慮しないでください.
...
現在のノードを選択
…
現在のノードの親ノードを選択
@
属性を選択
次の表には、パス表現と表現の結果がいくつか挙げられています.
パス表現
結果
book store
book store要素のすべてのサブノードを選択します.
/book store
ルート要素ブックを選択します.もしパスがまっすぐのバーから始まると、このパスは常にある要素への絶対パスを表します.
book store/book
book storeに属するサブ要素のすべてのbook要素を選択します.
//book
すべてのbookのサブ要素をドキュメント内の位置に関係なく選択します.
book store/book
book store要素に属する後代のすべてのbook要素を選択して、それらがbook storeの下のどの位置にあるかに関わらず.
//@lang
langという名前の属性をすべて選択します.
ノードの後の下付きを選択します.
パス表現
結果
/book store/book[1]
book storeに属する最初のbook要素を選択します.
/book store/book[last()
book storeに属する最後のbook要素を選択します.
/book store/book[last()-1]
book storeに属する最後から二番目のbook要素を選択します.
/book store/book[position()<3]
一番前の二つのbook store要素に属するサブ要素のbook要素を選択します.
//title[@lang]
langという属性を持つすべてのtitle要素を選択します.
//title[@lang=‘eng’]
すべてのtitle要素を選択し、これらの要素はengのlang属性を持つ.
/book store/book[price]35.00]
book store要素のすべてのbook要素を選択し、その中のprice要素の値は35.00より大きい必要があります.
/book store/book[price]35.00/title
book storeの要素の中のbook要素のすべてのtitle要素を選択して、しかもその中のprice元素の値は35.00より大きいべきです.
不明なノードを選択し、ワイルドカード
ワイルドカード
説明
*
任意の要素ノードにマッチ
@*
任意の属性ノードにマッチ
node()
任意のタイプのノードにマッチします.
実例
パス表現
結果
/book store/*
book store要素のすべてのサブ要素を選択します.
//*
ドキュメント内のすべての要素を選択します.
//title[@*]
属性を持つすべてのtitle要素を選択します.
いくつかのパスを選択
パス表現
結果
//book/title 124/book/price
book要素のすべてのtitleとprice元素を選択します.
//title 124/price
ドキュメント内のすべてのtitleとprice要素を選択します.
//book store/book/title 124/price
book store要素に属するbook要素のすべてのtitle要素とドキュメント内のすべてのprice要素を選択します.
はい、ここまで話します.基礎は全部話しました.あとは自分でたくさん練習するしかないです.
まず、xpathとは、テンプレート言語の文字列形式を指定したデータキャプチャであるということを理解させていただきます.簡単に言うと、先端から取得した文字列データの中から、あなたが欲しいデータ2、xpathの文法XPTathをパス式でXMLドキュメントのノードまたはノードセットを選択します.ノードは、経路(path)またはステップ(steps)に沿って選択される.分かりやすいように、xpathの文法を以下の例で説明します.
Harry Potter
29.99
Learning XML
39.95
選択されたノードXathは、パス表現を使用してXMLドキュメントからノードを選択します.ノードは、経路またはステップに沿って選択される.最も有用なパス表現を以下に示します.
表式
説明
nodename
このノードのすべてのサブノードを選択します.
を選択します.
ルートノードから選択します.
//
選択された現在のノードにマッチしてドキュメント内のノードを選択します.位置を考慮しないでください.
...
現在のノードを選択
…
現在のノードの親ノードを選択
@
属性を選択
次の表には、パス表現と表現の結果がいくつか挙げられています.
パス表現
結果
book store
book store要素のすべてのサブノードを選択します.
/book store
ルート要素ブックを選択します.もしパスがまっすぐのバーから始まると、このパスは常にある要素への絶対パスを表します.
book store/book
book storeに属するサブ要素のすべてのbook要素を選択します.
//book
すべてのbookのサブ要素をドキュメント内の位置に関係なく選択します.
book store/book
book store要素に属する後代のすべてのbook要素を選択して、それらがbook storeの下のどの位置にあるかに関わらず.
//@lang
langという名前の属性をすべて選択します.
ノードの後の下付きを選択します.
パス表現
結果
/book store/book[1]
book storeに属する最初のbook要素を選択します.
/book store/book[last()
book storeに属する最後のbook要素を選択します.
/book store/book[last()-1]
book storeに属する最後から二番目のbook要素を選択します.
/book store/book[position()<3]
一番前の二つのbook store要素に属するサブ要素のbook要素を選択します.
//title[@lang]
langという属性を持つすべてのtitle要素を選択します.
//title[@lang=‘eng’]
すべてのtitle要素を選択し、これらの要素はengのlang属性を持つ.
/book store/book[price]35.00]
book store要素のすべてのbook要素を選択し、その中のprice要素の値は35.00より大きい必要があります.
/book store/book[price]35.00/title
book storeの要素の中のbook要素のすべてのtitle要素を選択して、しかもその中のprice元素の値は35.00より大きいべきです.
不明なノードを選択し、ワイルドカード
ワイルドカード
説明
*
任意の要素ノードにマッチ
@*
任意の属性ノードにマッチ
node()
任意のタイプのノードにマッチします.
実例
パス表現
結果
/book store/*
book store要素のすべてのサブ要素を選択します.
//*
ドキュメント内のすべての要素を選択します.
//title[@*]
属性を持つすべてのtitle要素を選択します.
いくつかのパスを選択
パス表現
結果
//book/title 124/book/price
book要素のすべてのtitleとprice元素を選択します.
//title 124/price
ドキュメント内のすべてのtitleとprice要素を選択します.
//book store/book/title 124/price
book store要素に属するbook要素のすべてのtitle要素とドキュメント内のすべてのprice要素を選択します.
はい、ここまで話します.基礎は全部話しました.あとは自分でたくさん練習するしかないです.