From 17a09cb40fe53b0b5d836013ab8a559a3aff97ad Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Thu, 26 Oct 2023 07:54:29 +0900 Subject: [PATCH] =?UTF-8?q?2023/07/07=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?= =?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/api/xpathexpression/evaluate/index.md | 91 +++++++++++++++++++ files/ja/web/api/xpathexpression/index.md | 60 ++++++++++++ 2 files changed, 151 insertions(+) create mode 100644 files/ja/web/api/xpathexpression/evaluate/index.md create mode 100644 files/ja/web/api/xpathexpression/index.md diff --git a/files/ja/web/api/xpathexpression/evaluate/index.md b/files/ja/web/api/xpathexpression/evaluate/index.md new file mode 100644 index 00000000000000..ee1e5a4f46748e --- /dev/null +++ b/files/ja/web/api/xpathexpression/evaluate/index.md @@ -0,0 +1,91 @@ +--- +title: "XPathExpression: evaluate() メソッド" +short-title: evaluate() +slug: Web/API/XPathExpression/evaluate +l10n: + sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc +--- + +{{APIRef("DOM XPath")}} + +**`evaluate()`** は {{domxref("XPathExpression")}} インターフェイスのメソッドで、指定されたノードまたは文書に対して [XPath](/ja/docs/Web/XPath) 式を実行し、{{domxref("XPathResult")}} を返します。 + +## 構文 + +```js-nolint +evaluate(contextNode) +evaluate(contextNode, type) +evaluate(contextNode, type, result) +``` + +### 引数 + +- `contextNode` + - : 式を評価するために使用するコンテキストを表す {{domxref("Node")}} です。 +- `type` {{optional_inline}} + - : 式を評価して返す結果の型を指定します。これは{{domxref("XPathResult", "XPathResult", "定数")}}のいずれかでなければなりません。 +- `result` {{optional_inline}} + - : このメソッドが再利用して返す結果オブジェクトを指定することができます。 + `null` を指定した場合や、実装が指定した結果を再利用しない場合は、新しい結果オブジェクトを返します。 + +### 返値 + +XPath 式の評価結果を表す {{domxref("XPathResult")}} オブジェクト。 + +### 例外 + +#### INVALID_EXPRESSION_ERR + +式が {{domxref("XPathEvaluator")}} の規則に従っていなかった場合、 `INVALID_EXPRESSION_ERR`` 型の {{domxref("XPathException")}} が発生します。 + +#### TYPE_ERR + +結果を指定した型に変換できなかた場合、 `TYPE_ERR` 型の {{domxref("XPathException")}} が発生します。 + +#### NAMESPACE_ERR + +指定した {{domxref("XPathNSResolver")}} で解決できない名前空間接頭辞が式に格納されていた場合、 `NAMESPACE_ERROR` 型の {{domxref("DOMException")}} が発生します。 + +#### WRONG_DOCUMENT_ERR + +指定されたコンテキストノードが {{domxref("XPathEvaluator")}} で対応していない文書のものである場合、 `WRONG_DOCUMENT_ERR` 型の {{domxref("DOMException")}} が発生します。 + +#### NOT_SUPPORTED_ERR + +指定されたコンテキストノードが XPath コンテキストノードとして許可されていない型であるか、リクエストの型が {{domxref("XPathEvaluator")}} によって許可されていない場合、 `NOT_SUPPORTED_ERR` 型の {{domxref("DOMException")}} が発生します。 + +## 例 + +次の例では `evaluate()` メソッドを使用しています。 + +### HTML + +```html +
XPath example
+
Number of <div>s:
+``` + +### JavaScript + +```js +const xpath = "//div"; +const evaluator = new XPathEvaluator(); +const expression = evaluator.createExpression("//div"); +const result = expression.evaluate( + document, + XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, +); +document.querySelector("output").textContent = result.snapshotLength; +``` + +### 結果 + +{{EmbedLiveSample('Examples')}} + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} diff --git a/files/ja/web/api/xpathexpression/index.md b/files/ja/web/api/xpathexpression/index.md new file mode 100644 index 00000000000000..ae6763ec29726d --- /dev/null +++ b/files/ja/web/api/xpathexpression/index.md @@ -0,0 +1,60 @@ +--- +title: XPathExpression +slug: Web/API/XPathExpression +l10n: + sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc +--- + +{{APIRef("DOM")}} + +このインターフェイスはコンパイルされた XPath 式であり、文書や特定のノードに対して評価を行うことで、その {{Glossary("DOM")}} ツリーから情報を返すことができます。 + +これは、アプリケーションで式を再使用する場合に有用です。コンパイルされるのは一度だけで、式内で発生するすべての名前空間接頭辞が事前解決されるからです。 + +この型のオブジェクトは、 {{domxref("XPathEvaluator.createExpression", "XPathEvaluator.createExpression()")}} を呼び出すことで生成されます。 + +## インスタンスメソッド + +- {{DOMxRef("XPathExpression.evaluate()")}} + - : 指定されたノードまたは文書に対して XPath 式を評価します。 + +## 例 + +次の例では `XPathExpression` インターフェイスを使用しています。 + +### HTML + +```html +
XPath example
+
Number of <div>s:
+``` + +### JavaScript + +```js +const xpath = "//div"; +const evaluator = new XPathEvaluator(); +const expression = evaluator.createExpression(xpath); +const result = expression.evaluate( + document, + XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, +); +document.querySelector("output").textContent = result.snapshotLength; +``` + +### 結果 + +{{EmbedLiveSample('Example', 400, 70)}} + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- {{DOMxRef("document.createExpression()")}} +- {{DOMxRef("XPathResult")}}