クレイジー XML 学習メモ (12)----------XPath
XPath は、XML ドキュメント内の情報を検索するための言語です。 XPath は、XML ドキュメント内の要素と属性間を移動するために使用されます。
XPathとは何ですか?
XPathはXMLドキュメント内を移動するためにパス式を使用します
- XPathはXSLTの主要要素です
- XPath は W3C 標準です
これらのパス式は、通常のコンピューターのファイル システムで見られるものと非常に似ています。
XPath標準関数
XPathには100を超える組み込み関数が含まれています。これらの関数は、文字列値、数値、日付と時刻の比較、ノードと QName の処理、シーケンス処理、論理値などに使用されます。
XPath には、要素、属性、テキスト、名前空間、処理命令、コメント、ドキュメント ノード (またはルート ノード) の 7 種類のノードがあります。
XPath用語ノード(ノード)
XPathには、要素、属性、テキスト、名前空間、処理命令、コメント、文書(ルート)ノードの7種類のノードがあります。 XML ドキュメントはノード ツリーとして扱われます。ツリーのルートはドキュメント ノードまたはルート ノードと呼ばれます。
次の 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>
上記 XML ドキュメント内のノードの例:
<bookstore> (文档节点) <author>J K. Rowling</author> (元素节点) lang="en" (属性节点)
基本値 (または原子値、原子値)
基本値は親も子も持たないノードです。
基本値の例:
J K. Rowling "en"
Item
Item は基本的な値またはノードです。
ノード関係
親
各要素と属性には親があります。
以下の例では、book 要素は、title、author、year、price 要素の親です:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
Children
要素ノードは、0、1 つ、または複数の子を持つことができます。
次の例では、title、author、year、price 要素はすべて book 要素の子です:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
Siblings (兄弟)
同じ親を持つノード
次の例では、title、author、The year 要素とprice 要素は兄弟です:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
Ancestor
ノードの親、親の親など。
以下の例では、title 要素の祖先は book 要素とbookstore 要素です:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
Descendant
ノードの子、子の子など。
次の例では、bookstore の子孫は book、title、author、year、price 要素です:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
XML サンプル ドキュメント
次の例では、この 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 軸
軸は、現在のノードを基準にして特定のノードのセットを定義します。
軸名結果ancestor | 現在のノードのすべての先祖(親、祖父など)を選択します | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ancestor-or-self | すべての先祖(親、祖父など)を選択します、現在のノードなど) と現在のノード自体 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
attribute | は現在のノードのすべての属性を選択します | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
child | は現在のノードのすべての子要素を選択します。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
descendant | 現在のノードのすべての子孫要素 (子、孫など) を選択します。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
descendant-or-self | 現在のノードと現在のノード自体のすべての子孫要素 (子、孫など) を選択します。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
次 | ドキュメント内の現在のノードの終了タグの後にあるすべてのノードを選択します。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
namespace | 現在のノードのすべての名前空間ノードを選択します | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
parent | 現在のノードの親ノードを選択します。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
preceding | ドキュメント内の現在のノードの開始タグの前にあるすべてのノードを選択します。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
preceding-sibling | 現在のノードの前のすべての兄弟ノードを選択します。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
self | 現在のノードを選択します。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
位置路径表达式位置路径可以是绝对的,也可以是相对的。 绝对路径起始于正斜杠( / ),而相对路径不会这样。在两种情况中,位置路径均包括一个或多个步,每个步均被斜杠分割: 绝对位置路径:/step/step/... ログイン後にコピー 相对位置路径:step/step/... ログイン後にコピー 每个步均根据当前节点集之中的节点来进行计算。 步(step)包括:
步的语法:轴名称::节点测试[谓语] ログイン後にコピー 实例
XPath 运算符
XPath 表达式可返回节点集、字符串、逻辑值以及数字。 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> ログイン後にコピー
节点选取我们将使用微软的 XML DOM 对象来载入 XML 文档,并使用 selectNodes() 函数从 XML 文档选取节点: set xmlDoc=CreateObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.load("books.xml") xmlDoc.selectNodes(路径表达式) ログイン後にコピー 选取所有的 book 节点下面的这个例子选取了 bookstore 元素下所有的 book 节点: xmlDoc.selectNodes("/bookstore/book") ログイン後にコピー
选取第一个 book 节点下面的例子仅选取 bookstore 元素下第一个 book 节点: xmlDoc.selectNodes("/bookstore/book[0]") ログイン後にコピー
选取 price下面的例子从所有的 price 节点选取文本: xmlDoc.selectNodes("/bookstore/book/price/text()") ログイン後にコピー
选取价格高于 35 的 price 价格下面的例子会选取所有价格高于 35 的 price 节点: xmlDoc.selectNodes("/bookstore/book[price>35]/price") ログイン後にコピー
选取价格高于 35 的 title 节点下面的例子会选取所有价格高于 35 的 title 节点: xmlDoc.selectNodes("/bookstore/book[price>35]/title") ログイン後にコピー
以上就是疯狂XML学习笔记(12)------------XPath的内容,更多相关内容请关注PHP中文网(www.php.cn)!
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
![]() ホットAIツール![]() Undresser.AI Undressリアルなヌード写真を作成する AI 搭載アプリ ![]() AI Clothes Remover写真から衣服を削除するオンライン AI ツール。 ![]() Undress AI Tool脱衣画像を無料で ![]() Clothoff.ioAI衣類リムーバー ![]() Video Face Swap完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。 ![]() 人気の記事
アサシンのクリードシャドウズ:シーシェルリドルソリューション
3週間前
By DDD
Windows11 KB5054979の新しいものと更新の問題を修正する方法
2週間前
By DDD
Atomfallのクレーンコントロールキーカードを見つける場所
3週間前
By DDD
<🎜>:Dead Rails-すべての課題を完了する方法
4週間前
By DDD
Atomfall Guide:アイテムの場所、クエストガイド、およびヒント
1 か月前
By DDD
![]() ホットツール![]() メモ帳++7.3.1使いやすく無料のコードエディター ![]() SublimeText3 中国語版中国語版、とても使いやすい ![]() ゼンドスタジオ 13.0.1強力な PHP 統合開発環境 ![]() ドリームウィーバー CS6ビジュアル Web 開発ツール ![]() SublimeText3 Mac版神レベルのコード編集ソフト(SublimeText3) ![]() ホットトピック
Gmailメールのログイン入り口はどこですか?
![]() ![]()
CakePHP チュートリアル
![]() ![]()
C# チュートリアル
![]() ![]()
Steamのアカウント名の形式は何ですか
![]() ![]() ![]() XML ファイルは PPT で開くことができますか? XML、Extensible Markup Language (Extensible Markup Language) は、データ交換とデータ ストレージで広く使用されている汎用マークアップ言語です。 HTML と比較して、XML はより柔軟であり、独自のタグとデータ構造を定義できるため、データの保存と交換がより便利で統一されます。 PPT (PowerPoint) は、プレゼンテーションを作成するために Microsoft によって開発されたソフトウェアです。包括的な方法を提供します。 ![]() Python を使用した XML データのマージと重複排除 XML (eXtensibleMarkupLanguage) は、データの保存と送信に使用されるマークアップ言語です。 XML データを処理するとき、複数の XML ファイルを 1 つにマージしたり、重複データを削除したりする必要がある場合があります。この記事では、Python を使用して XML データのマージと重複排除を実装する方法と、対応するコード例を紹介します。 1. XML データのマージ 複数の XML ファイルがある場合、それらをマージする必要があります。 ![]() Python の XML データを CSV 形式に変換する XML (ExtensibleMarkupLanguage) は、データの保存と送信に一般的に使用される拡張可能なマークアップ言語です。 CSV (CommaSeparatedValues) は、データのインポートとエクスポートに一般的に使用されるカンマ区切りのテキスト ファイル形式です。データを処理するとき、分析や処理を容易にするために、XML データを CSV 形式に変換する必要がある場合があります。 Pythonは強力です ![]() Python を使用した XML データのフィルタリングと並べ替えの実装 はじめに: XML は、データをタグと属性の形式で保存する、一般的に使用されるデータ交換形式です。 XML データを処理するとき、多くの場合、データのフィルタリングと並べ替えが必要になります。 Python には、XML データを処理するための便利なツールとライブラリが多数用意されています。この記事では、Python を使用して XML データをフィルタリングおよび並べ替える方法を紹介します。 XML ファイルの読み取り 始める前に、XML ファイルを読み取る必要があります。 Python には XML 処理ライブラリが多数ありますが、 ![]() Python は XML と JSON 間の変換を実装します はじめに: 日常の開発プロセスでは、異なる形式間でデータを変換する必要があることがよくあります。 XML と JSON は一般的なデータ交換形式であり、Python ではさまざまなライブラリを使用して XML と JSON の間で変換できます。この記事では、一般的に使用されるいくつかの方法をコード例とともに紹介します。 1. Python で XML を JSON に変換するには、xml.etree.ElementTree モジュールを使用できます。 ![]() Python を使用した XML でのエラーと例外の処理 XML は、構造化データの保存と表現に使用される一般的に使用されるデータ形式です。 Python を使用して XML を処理すると、エラーや例外が発生することがあります。この記事では、Python を使用して XML のエラーと例外を処理する方法を紹介し、参考用のサンプル コードをいくつか示します。 Try-Except ステートメントを使用して XML 解析エラーを捕捉する Python を使用して XML を解析すると、時々、次のようなエラーが発生することがあります。 ![]() Python は XML 内の特殊文字とエスケープ シーケンスを解析します XML (eXtensibleMarkupLanguage) は、異なるシステム間でデータを転送および保存するために一般的に使用されるデータ交換形式です。 XML ファイルを処理する場合、特殊文字やエスケープ シーケンスが含まれる状況に遭遇することが多く、これにより解析エラーやデータの誤解が生じる可能性があります。したがって、Python を使用して XML ファイルを解析する場合は、これらの特殊文字とエスケープ シーケンスの処理方法を理解する必要があります。 1. 特殊文字と ![]() C# 開発で XML および JSON データ形式を処理する方法には、特定のコード サンプルが必要です。現代のソフトウェア開発では、XML と JSON の 2 つのデータ形式が広く使用されています。 XML (Extensible Markup Language) はデータの保存と送信に使用されるマークアップ言語であり、JSON (JavaScript Object Notation) は軽量のデータ交換形式です。 C# 開発では、XML と JSON データの処理と操作が必要になることがよくありますが、この記事では、C# を使用してこれら 2 つのデータ形式を処理し、添付する方法に焦点を当てます。 ![]() |