From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../web/api/xsltprocessor/basic_example/index.html | 49 ++++++ .../xsltprocessor/browser_differences/index.html | 13 ++ .../api/xsltprocessor/generating_html/index.html | 178 +++++++++++++++++++++ files/ja/web/api/xsltprocessor/index.html | 136 ++++++++++++++++ .../web/api/xsltprocessor/introduction/index.html | 16 ++ .../ja/web/api/xsltprocessor/resources/index.html | 17 ++ 6 files changed, 409 insertions(+) create mode 100644 files/ja/web/api/xsltprocessor/basic_example/index.html create mode 100644 files/ja/web/api/xsltprocessor/browser_differences/index.html create mode 100644 files/ja/web/api/xsltprocessor/generating_html/index.html create mode 100644 files/ja/web/api/xsltprocessor/index.html create mode 100644 files/ja/web/api/xsltprocessor/introduction/index.html create mode 100644 files/ja/web/api/xsltprocessor/resources/index.html (limited to 'files/ja/web/api/xsltprocessor') diff --git a/files/ja/web/api/xsltprocessor/basic_example/index.html b/files/ja/web/api/xsltprocessor/basic_example/index.html new file mode 100644 index 0000000000..3d5b98e875 --- /dev/null +++ b/files/ja/web/api/xsltprocessor/basic_example/index.html @@ -0,0 +1,49 @@ +--- +title: Basic Example +slug: Web/API/XSLTProcessor/Basic_Example +tags: + - XSLT +translation_of: Web/API/XSLTProcessor/Basic_Example +--- +
{{英語版章題("Basic Example")}}
+

基本的な例

+

最初の例は、ブラウザで XSLT 変換の設定の基本を実演します。 この例は、人が読むことのできる書式で書かれた記事についての情報 (タイトル、著者の一覧、本文) を含む XML ドキュメントを取得します。

+

図 1 は基本的な XSLT の例のソースです。XML ドキュメント (example.xml) は記事についての情報を含んでいます。?xml-stylesheet? で処理を指示すると、その href 属性を通して XSLT スタイルシートへリンクします。

+

XSLT スタイルシートは、最終的な出力を生成するためのすべてのテンプレートを含む、xsl:stylesheet 要素で開始します。図 1 の例には二つのテンプレートがあります。一つはルートノードに対応し、一つは Author ノードに対応します。ルートノードが出力する記事のタイトルにテンプレートが一致すると、(apply-templates を通して) Authors ノードの子の、すべての Author ノードに対応するテンプレートが処理されます。

+

図 1 : 簡単な XSLT の例

+

XML ドキュメント (example.xml) :

+ +
<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="example.xsl"?>
+<Article>
+  <Title>My Article</Title>
+  <Authors>
+    <Author>Mr. Foo</Author>
+    <Author>Mr. Bar</Author>
+  </Authors>
+  <Body>This is my article text.</Body>
+</Article>
+ +

XSL スタイルシート (example.xsl) :

+ +
<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:output method="text"/>
+
+  <xsl:template match="/">
+    Article - <xsl:value-of select="/Article/Title"/>
+    Authors: <xsl:apply-templates select="/Article/Authors/Author"/>
+  </xsl:template>
+
+  <xsl:template match="Author">
+    - <xsl:value-of select="." />
+  </xsl:template>
+
+</xsl:stylesheet>
+

ブラウザの出力:

+
Article - My Article
+Authors:
+- Mr. Foo
+- Mr. Bar
+
diff --git a/files/ja/web/api/xsltprocessor/browser_differences/index.html b/files/ja/web/api/xsltprocessor/browser_differences/index.html new file mode 100644 index 0000000000..eb3fe9d6c9 --- /dev/null +++ b/files/ja/web/api/xsltprocessor/browser_differences/index.html @@ -0,0 +1,13 @@ +--- +title: Browser Differences +slug: Web/API/XSLTProcessor/Browser_Differences +translation_of: Web/API/XSLTProcessor/Browser_Differences +--- +

+

+

ブラウザの違い

+

Netscape 7.x (すべてのプラットフォーム) と Internet Explorer 6 (Windows) は W3C XSLT 1.0 標準 (http://www.w3.org/TR/xslt) をサポートしています。IE 5.0 および 5.5 (共に Windows) は XSLT のワーキングドラフトのみがサポートされているため、XSLT 1.0 スタイルシートとの互換性はありません。Netscape 6.x は XSLT 1.0 が部分的にサポートされています。 +

+
+
+{{ languages( { "en": "en/XSLT_in_Gecko/Browser_Differences", "fr": "fr/XSLT_dans_Gecko/Diff\u00e9rences_entre_les_navigateurs", "ko": "ko/XSLT_in_Gecko/Browser_Differences" } ) }} diff --git a/files/ja/web/api/xsltprocessor/generating_html/index.html b/files/ja/web/api/xsltprocessor/generating_html/index.html new file mode 100644 index 0000000000..5dd0bc1f01 --- /dev/null +++ b/files/ja/web/api/xsltprocessor/generating_html/index.html @@ -0,0 +1,178 @@ +--- +title: Generating HTML +slug: Web/API/XSLTProcessor/Generating_HTML +translation_of: Web/API/XSLTProcessor/Generating_HTML +--- +

+

+

HTML を生成する

+

ブラウザ内の XSLT の共通アプリケーションの一つは、クライアント上で XML を HTML へと変換することです。二つ目の例は、前回と同様の記事についての情報を含むドキュメント (example2.xml) を入力し、HTML ドキュメントへ変換します。 +

今回は、記事の <body> 要素は HTML 要素 (図 2 では <b> タグと <u> タグ) を含みます。XML ドキュメントは HTML 要素と XML 要素の両方を含みますが、一つの名前空間、つまり XML 要素のための名前空間のみが必要です。これには HTML 名前空間が無く、XHTML 名前空間を使用すると HTML ドキュメントのように振舞わない XML ドキュメントを XSL に生成させてしまうため、XSL スタイルシート内の xsl:output によって結果のドキュメントが HTML として扱われるようにします。XML 要素については、私たちの独自の名前空間 http://devedge.netscape.com/2002/de と、それによって与えられる myNS プレフィックス (xmlns:myNS="http://devedge.netscape.com/2002/de") が必要です。 +

図 2 XML ファイル :(example2.xml)view example | view source +XML Document (example2.xml): +

+
<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="example2.xsl"?>
+  <myNS:Article xmlns:myNS="http://devedge.netscape.com/2002/de">
+    <myNS:Title>My Article</myNS:Title>
+    <myNS:Authors>
+      <myNS:Author company="Foopy Corp.">Mr. Foo</myNS:Author>
+      <myNS:Author>Mr. Bar</myNS:Author>
+    </myNS:Authors>
+    <myNS:Body>
+      The <b>rain</b> in <u>Spain</u> stays mainly in the plains.
+    </myNS:Body>
+  </myNS:Article>
+
+

XSL スタイルシートは二つの名前空間を持つ必要があります。一つは XSLT 要素、もう一つは私たちの独自の XML 要素を XML ドキュメント内で使用するためのものです。XSL スタイルシートの出力は、xsl:output 要素を使用して HTML に設定します。出力を HTML に設定すると結果的に要素 (青色の部分) が名前空間を持たないため、これらの要素は HTML 要素とみなされます。 +

図 3 : 二つの名前空間をもつ XSL スタイルシート (example2.xsl) +XSL Stylesheet (example2.xsl): +

+
  <?xml version="1.0"?>
+  <xsl:stylesheet version="1.0"
+                           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                           xmlns:myNS="http://devedge.netscape.com/2002/de">
+
+    <xsl:output method="html"/>
+    ...
+  </xsl:stylesheet version="1.0">
+
+

XML ドキュメントのルートノードに一致するテンプレートは、基本的な HTML ページの構造を生成するために作成し、使用されます。 +

図 4 : 基本的な HTML ドキュメントの生成 +XSL スタイルシート (example2.xsl): +

+
  ...
+  <xsl:template match="/">
+  <html>
+
+    <head>
+
+      <title>
+        <xsl:value-of select="/myNS:Article/myNS:Title"/>
+      </title>
+
+      <style type="text/css">
+        .myBox {margin:10px 155px 0 50px; border: 1px dotted #639ACE; padding:0 5px 0 5px;}
+      </style>
+
+    </head>
+
+    <body>
+      <p class="myBox">
+        <span class="title">
+          <xsl:value-of select="/myNS:Article/myNS:Title"/>
+        </span> </br>
+
+        Authors:   <br />
+          <xsl:apply-templates select="/myNS:Article/myNS:Authors/myNS:Author"/>
+      </p>
+
+      <p class="myBox">
+        <xsl:apply-templates select="//myNS:Body"/>
+      </p>
+
+    </body>
+
+  </html>
+  </xsl:template>
+  ...
+
+

例を完成するには、さらに三つの xsl:template が必要です。最初の xsl:template は、二番目のテンプレートが body ノードを処理する間、author ノードに使用されます。三番目のテンプレートは、任意のノードや任意の属性に対応する一般的な対応規則を持っています。これは XML ドキュメント内で、HTML 要素のすべてに対応し、変換生成される HTML ドキュメントにコピーする要素を予約しておくために必要です。 +

図 5 : 最終的な三つのテンプレート +XSL Stylesheet(example2.xsl): +

+
  ...
+  <xsl:template match="myNS:Author">
+     --   <xsl:value-of select="." />
+
+    <xsl:if test="@company">
+     ::   <b>  <xsl:value-of select="@company" />  </b>
+    </xsl:if>
+
+    <br />
+  </xsl:template>
+
+  <xsl:template match="myNS:Body">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()"/>
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="@*|node()">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()"/>
+    </xsl:copy>
+  </xsl:template>
+  ...
+
+

最終的な XSLT スタイルシートは次のようになります: +

図 6 : 最終的な XSLT スタイルシートview example | view source +XSL Stylesheet: +

+
  <?xml version="1.0"?>
+  <xsl:stylesheet version="1.0"
+                           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                           xmlns:myNS="http://devedge.netscape.com/2002/de">
+
+    <xsl:output method="html" />
+
+    <xsl:template match="/">
+      <html>
+
+        <head>
+
+          <title>
+            <xsl:value-of select="/myNS:Article/myNS:Title"/>
+          </title>
+
+          <style type="text/css">
+            .myBox {margin:10px 155px 0 50px; border: 1px dotted #639ACE; padding:0 5px 0 5px;}
+          </style>
+
+        </head>
+
+        <body>
+          <p class="myBox">
+            <span class="title">
+              <xsl:value-of select="/myNS:Article/myNS:Title"/>
+            </span> <br />
+
+            Authors:   <br />
+              <xsl:apply-templates select="/myNS:Article/myNS:Authors/myNS:Author"/>
+            </p>
+
+          <p class="myBox">
+            <xsl:apply-templates select="//myNS:Body"/>
+          </p>
+
+        </body>
+
+      </html>
+    </xsl:template>
+
+    <xsl:template match="myNS:Author">
+       --   <xsl:value-of select="." />
+
+      <xsl:if test="@company">
+       ::   <b>  <xsl:value-of select="@company" />  </b>
+      </xsl:if>
+
+      <br />
+    </xsl:template>
+
+    <xsl:template match="myNS:Body">
+      <xsl:copy>
+        <xsl:apply-templates select="@*|node()"/>
+      </xsl:copy>
+    </xsl:template>
+
+    <xsl:template match="@*|node()">
+        <xsl:copy>
+          <xsl:apply-templates select="@*|node()"/>
+        </xsl:copy>
+    </xsl:template>
+  </xsl:stylesheet>
+
+
+
+{{ languages( { "en": "en/XSLT_in_Gecko/Generating_HTML", "fr": "fr/XSLT_dans_Gecko/G\u00e9n\u00e9ration_de_HTML", "ko": "ko/XSLT_in_Gecko/Generating_HTML" } ) }} diff --git a/files/ja/web/api/xsltprocessor/index.html b/files/ja/web/api/xsltprocessor/index.html new file mode 100644 index 0000000000..f0668fb323 --- /dev/null +++ b/files/ja/web/api/xsltprocessor/index.html @@ -0,0 +1,136 @@ +--- +title: XSLTProcessor +slug: Web/API/XSLTProcessor +tags: + - API + - DOM + - DOM Reference + - Reference + - XSLT +translation_of: Web/API/XSLTProcessor +--- +

{{Non-standard_header}}{{SeeCompatTable}}{{APIRef("XSLT")}}

+ +

XSLTProcessor は、XSLT スタイルシート変換を XML 文書に適用して、新しい XML 文書を出力として生成します。XSLT スタイルシートをロードし、<xsl:param> パラメータ値を操作し、変換処理をドキュメントに適用するメソッドを持っています。

+ +

構文

+ +

コンストラクタにはパラメータはありません。

+ +
new XSLTProcessor()
+ +

メソッド

+ +
+
[Throws] void {{domxref("XSLTProcessor.importStylesheet")}}({{domxref("Node")}} styleSheet)
+
XSLT スタイルシートをインポートします。指定されたノードがドキュメントノードの場合は、完全な XSL Transform またはリテラルの結果要素の変換を渡すことができます。それ以外の場合は、<xsl:stylesheet> または <xsl:transform> 要素でなければなりません。
+
[Throws] {{domxref("DocumentFragment")}} {{domxref("XSLTProcessor.transformToFragment")}}({{domxref("Node")}} source, {{domxref("Document")}} owner)
+
{{domxref("XSLTProcessor.importStylesheet()")}} 関数を使用してインポートしたスタイルシートを適用して、ノードソースを変換します。結果として得られる文書フラグメントの文書オーナーは所有者ノードです。
+
[Throws] {{domxref("Document")}} {{domxref("XSLTProcessor.transformToDocument")}}({{domxref("Node")}} source)
+
+

{{domxref("XSLTProcessor.importStylesheet()")}} 関数を使用してインポートされたスタイルシートを適用して、ノードソースを変換します。

+ +

結果のオブジェクトはスタイルシートのメソッド出力に依存します。

+ + + + + + + + + + + + + + + + + + + + + + +
メソッド出力結果のタイプ
html{{domxref("HTMLDocument")}}
xml{{domxref("XMLDocument")}}
text{{domxref("XMLDocument")}} with a single root element <transformiix:result> with the text as a child
+
+
[Throws] void {{domxref("XSLTProcessor.setParameter")}}({{jsxref("String")}} namespaceURI, {{jsxref("String")}} localName, any value)
+
インポートされた XSLT スタイルシートにパラメータを設定します。 (<xsl:param> の値を設定します)。namespaceURI の値が null の場合は、空の文字列と同じように扱われます。
+
[Throws] any {{domxref("XSLTProcessor.getParameter")}}({{jsxref("String")}} namespaceURI, {{jsxref("String")}} localName)
+
XSLT スタイルシートからパラメータの値を取得します。 namespaceURI の値が null の場合は、空の文字列と同じように扱われます。
+
[Throws] void {{domxref("XSLTProcessor.removeParameter")}}({{jsxref("String")}} namespaceURI, {{jsxref("String")}} localName)
+
パラメータが以前に設定されていた場合は削除します。これにより、XSLTProcessor はスタイルシートで指定されたパラメータのデフォルト値を使用します。namespaceURI の値が null の場合は、空の文字列と同じように扱われます。
+
void {{domxref("XSLTProcessor.clearParameters()")}}
+
XSLTProcessor からすべての設定パラメータを削除します。 XSLTProcessor は XSLT スタイルシートで指定されているデフォルトを使用します。
+
void {{domxref("XSLTProcessor.reset()")}}
+
すべてのパラメータとスタイルシートを XSLTProcessor から削除します。
+
+ +

プロパティ

+ +

ウェブで公開されないプロパティ

+ +

次のプロパティは [ChromeOnly] で、ウェブコンテンツには公開されません。

+ +
+
[ChromeOnly] attribute unsigned long {{domxref("XSLTProcessor.flags")}}
+
+

プロセッサの動作を調整するフラグ。{{domxref("XSLTProcessor.reset()")}} を呼び出してもリセットされません。デフォルト値:0

+ +

取りうる値は次のとおりです。

+ + + + + + + + + + + + + + + + + + + + + +
名前エフェクト
(None)0なし
DISABLE_ALL_LOADS1外部ドキュメントの読み込みを無効にする (例: <xsl:import> および document())
+
+
+ +

+ +
    +
  1. Basic example
  2. +
  3. Advanced example
  4. +
  5. Additional example
  6. +
+ +

仕様

+ +

仕様の一部ではありません。これはGeckoに由来する独自のインターフェースです。

+ +

Gecko IDL

+ + + +

ブラウザの互換性

+ + + +

{{Compat("api.XSLTProcessor")}}

+ +

関連情報

+ + diff --git a/files/ja/web/api/xsltprocessor/introduction/index.html b/files/ja/web/api/xsltprocessor/introduction/index.html new file mode 100644 index 0000000000..353bcad2bc --- /dev/null +++ b/files/ja/web/api/xsltprocessor/introduction/index.html @@ -0,0 +1,16 @@ +--- +title: Introduction +slug: Web/API/XSLTProcessor/Introduction +translation_of: Web/API/XSLTProcessor/Introduction +--- +

+

+

序文

+

W3C 標準で気付かされる流行の一つは、スタイルからコンテンツを分ける努力がなされていることです。これにより、同じスタイルを複数のコンテンツで再利用することができ、簡単なメンテナンスでコンテンツの外観を (一つのファイルの修正のみで) すばやく変更することができます。 +

CSS (Cascade Style Sheets) は W3C によって最初に提唱された方法の一つでした。CSS は簡単な方法でスタイル規則を Web ドキュメントに適用します。これらのスタイル規則は、ドキュメント(その中のコンテンツ) のレイアウトを定義します。しかしながら、プログラミング構造や複雑なレイアウトモデルの作成能力に欠陥があるなどいくつかの制限があります。CSS はまた、要素の配置の変更のサポートも制限されています。 +

XSL (Extensible Stylesheet Language) 変換は二つの部分で構成されています: XML ツリーを他のマークアップツリーおよび XPath へ変換可能にする XSL 要素、ツリーのための選択言語。XSLT は XML ドキュメント(そのコンテンツ) を取得し、XSL スタイルシートの規則によって新しいドキュメントを生成します。XSLT によって、オリジナルの XML ドキュメントから要素を追加、削除、再構成することができるため、結果的にドキュメント構造をより細かく制御することができます。 +

XSLT による変換は、テンプレートからなる規則を基にしています。各テンプレート (XPath を使用) は入力する XML ドキュメントの断片に一致すると、新しいドキュメントを生成するため、テンプレートをその断片の代わりとなる部分に適用します。 +

+
+
+{{ languages( { "en": "en/XSLT_in_Gecko/Introduction", "ko": "ko/XSLT_in_Gecko/Introduction" } ) }} diff --git a/files/ja/web/api/xsltprocessor/resources/index.html b/files/ja/web/api/xsltprocessor/resources/index.html new file mode 100644 index 0000000000..5df1f1d465 --- /dev/null +++ b/files/ja/web/api/xsltprocessor/resources/index.html @@ -0,0 +1,17 @@ +--- +title: Resources +slug: Web/API/XSLTProcessor/Resources +translation_of: Web/API/XSLTProcessor/Resources +--- +

 

+ +

参考

+ + -- cgit v1.2.3-54-g00ecf