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)!
|

RSSFeedにおけるXMLの役割は、データを構成し、標準化し、スケーラビリティを提供することです。 1.xmlはRSSFeedデータを構造化するため、解析と処理が簡単になります。 2.xmlは、RSSFeedの形式を定義する標準化された方法を提供します。 3.XMLスケーラビリティにより、RSSFeedは必要に応じて新しいタグと属性を追加できます。

XMLおよびRSSデータを処理する場合、次の手順でパフォーマンスを最適化できます。1)LXMLなどの効率的なパーサーを使用して、解析速度を改善します。 2)SAXパーサーを使用して、メモリの使用量を削減します。 3)Xpath式を使用して、データ抽出効率を改善します。 4)処理速度を改善するために、マルチプロセスの並列処理を実装します。

RSS2.0は、コンテンツパブリッシャーが構造化された方法でコンテンツを配布できるようにするオープン標準です。タイトル、リンク、説明、リリース日などの豊富なメタデータが含まれているため、サブスクライバーは迅速にコンテンツを参照してアクセスできます。 RSS2.0の利点は、そのシンプルさとスケーラビリティです。たとえば、カスタム要素を許可します。つまり、開発者は著者、カテゴリなどのニーズに基づいて追加情報を追加できます。

RSSは、頻繁に更新されるコンテンツを公開するために使用されるXMLベースの形式です。 1。RSSFeedは、タイトル、リンク、説明などを含むXML構造を通じて情報を整理します。2。rssfeedの作成には、言語やリリース日などのメタデータを追加するXML構造での書き込みが必要です。 3.高度な使用法には、マルチメディアファイルと分類された情報を含めることができます。 4.デバッグ中にXML検証ツールを使用して、必要な要素が存在し、正しくエンコードされていることを確認します。 5. RSSFeedの最適化は、構造をシンプルに保つことで、ページング、キャッシュ、および保持することで実現できます。この知識を理解して適用することにより、コンテンツを効果的に管理および配布できます。

RSSは、コンテンツを公開および購読するために使用されるXMLベースの形式です。 RSSファイルのXML構造には、ルート要素、要素、および複数の要素が含まれ、それぞれがコンテンツエントリを表します。 XMLパーサーを介してRSSファイルを読み取り、解析すると、ユーザーは最新のコンテンツを購読して取得できます。

XMLには、RSSの構造化データ、スケーラビリティ、クロスプラットフォームの互換性、解析検証の利点があります。 1)構造化されたデータにより、コンテンツの一貫性と信頼性が保証されます。 2)スケーラビリティにより、コンテンツのニーズに合わせてカスタムタグを追加できます。 3)クロスプラットフォームの互換性により、さまざまなデバイスでシームレスに動作します。 4)分析および検証ツールは、フィードの品質と完全性を確保します。

XMLでのRSSの実装は、構造化されたXML形式を使用してコンテンツを整理することです。 1)RSSは、チャネル情報やプロジェクトリストなどの要素を含むデータ交換形式としてXMLを使用します。 2)RSSファイルを生成する場合、コンテンツは仕様に従って整理し、サブスクリプションのためにサーバーに公開する必要があります。 3)RSSファイルは、読者またはプラグインを介してサブスクライブして、コンテンツを自動的に更新できます。

RSSの高度な機能には、コンテンツネームスペース、拡張モジュール、条件付きサブスクリプションが含まれます。 1)コンテンツネームスペースはRSS機能を拡張します。2)dublincoreやiTunesなどの拡張モジュールを拡張してメタデータを追加します。これらの関数は、情報収集の効率を改善するためにXML要素と属性を追加することにより実装されます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

メモ帳++7.3.1
使いやすく無料のコードエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック









