目次
XSLから始まります
XSLT
XSLT は、1 つの XML ドキュメントを別の XML ドキュメント、または HTML や XHTML などのブラウザで認識できる他の種類のドキュメントに変換するために使用されます。通常、XSLT は、各 XML 要素を (X)HTML 要素に変換することによってこれを行います。
注: <xsl:stylesheet> と <xsl:transform> は両方とも使用できます。
从一个原始的 XML 文档开始
在 Internet Explorer 和 Firefox 中查看 XML 文件:
在 Netscape 6 中查看 XML 文件:
在 Opera 7 中查看 XML 文件:
创建 XSL 样式表
把 XSL 样式表链接到 XML 文档
<xsl:template> 元素
好了,让我们看一下上一节中的 XSL 文件的简化版本:
代码解释:
以上转换的结果类似这样:
<xsl:value-of> 元素
上面的转换结果类似这样:
<xsl:for-each> 元素
结果过滤
合法的过滤运算符:
在何处放置排序信息
<xsl:if> 元素
语法
在何处放置 <xsl:if> 元素
<xsl:choose> 元素
在何处放置选择条件
另一个例子
<xsl:apply-templates> 元素
XSLT 元素
ホームページ バックエンド開発 XML/RSS チュートリアル クレイジーXML学習記(11) -----------XSLT解説

クレイジーXML学習記(11) -----------XSLT解説

Feb 21, 2017 pm 02:44 PM


XML の基礎知識については以前に整理しましたので、興味のある方は次の URL をご覧ください

http://www.php.cn/

記事内の写真や文章の表示に誤りがあり表示できませんのでご了承ください!

確認したい場合は、w3cshool API ドキュメントをダウンロードできます

Connect http://www.php.cn/Download

XSLT XSL で始まり、で終わりますXSLT、XPath、および XSL-FO。

XPathについては後ほど詳しく説明します

XSLから始まります

uage)。 World Wide Web Consortium (W3C) は、XML ベースのスタイルシート言語の必要性があったため、XSL の開発を開始しました。 CSS = HTML スタイルシート

HTML は定義済みのタグを使用しており、タグの意味

は理解しやすいです

HTML 要素の

要素はテーブルを定義し、ブラウザはそれを

表示する方法

を認識します。 HTML 要素にスタイルを追加するのは簡単です。 CSS を使用すると、要素を特定のフォントまたは色で表示するようにブラウザーに指示するのが簡単です。

XSL = XML スタイルシート

XML は事前定義されたタグを使用しません (任意のタグ名を使用できます)。また、これらのタグの意味

は必ずしも理解するのが簡単ではありません

要素は HTML テーブル、家具、またはその他のものを意味します。ブラウザーはそれを表示する方法を

知りません

XSL は XML ドキュメントを表示する方法を

説明

することができます! XSL - 単なるスタイルシート言語ではありません

XSL は 3 つの部分で構成されています:

XSLT

    XML ドキュメントを変換するための言語。
  • XPath
  • XML ドキュメント内を移動するための言語。
  • XSL-FO
  • XMLドキュメントをフォーマットするための言語。

XSLT は、XML ドキュメントを XHTML ドキュメントまたは他の XML ドキュメントに変換するために使用される言語です。


XPath は、XML ドキュメント内を移動するための言語です。

学習する前に知っておく必要がある基本的な知識:

学習を続ける前に、次の知識の基本を理解しておく必要があります:

HTML / XHTML

    XML / XML 名前空間
  • XPath
  • これらのプロジェクトを最初に学びたい場合は、私たちのをチェックしてください。 これらのチュートリアルにアクセスするためのホームページ。
  • XSLTとは何ですか?

XSLT は XSL 変換を指します。

    XSLT は XSL の最も重要な部分です。
  • XSLT は、1 つの XML ドキュメントを別の XML ドキュメントに変換できます。
  • XSLT は XPath を使用して XML ドキュメント内を移動します。
  • XPath は W3C 標準です。
  • XSLT = XSL変換

XSLTはXSLの最も重要な部分です。

XSLT は、1 つの XML ドキュメントを別の XML ドキュメント、または HTML や XHTML などのブラウザで認識できる他の種類のドキュメントに変換するために使用されます。通常、XSLT は、各 XML 要素を (X)HTML 要素に変換することによってこれを行います。

XSLT を使用すると、出力ファイルに要素や属性を追加したり、出力ファイルから要素や属性を削除したりできます。また、要素を再配置したり、テストを実行して、どの要素を非表示にするか表示するかを決定したりすることもできます。

変換プロセスを記述する一般的な方法は、

XSLT が XML ソース ツリーを XML 結果ツリー

に変換するというものです。

XSLTはXPathを使用します

XSLTはXPathを使用してXMLドキュメント内の情報を検索します。 XPath は、要素と属性を通じて XML ドキュメント内を移動するために使用されます。

まず XPath について学びたい場合は、こちらにアクセスしてください。 XPath チュートリアル。

それはどのように機能しますか?

変換プロセス中、XSLT は XPath を使用して、1 つ以上の事前定義されたテンプレートに一致するソース文書の部分を定義します。一致するものが見つかると、XSLT はソース文書の一致する部分を結果文書に変換します。

正しいスタイル シート宣言

は、ルート要素が または として宣言されます。

注: は両方とも使用できます。

W3C の XSLT 標準によると、XSL スタイル シートを宣言する正しい方法は次のとおりです:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
ログイン後にコピー

または:

<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
ログイン後にコピー

XSLT 要素、属性、および特性にアクセスするには、それらを宣言する必要があります。ドキュメントの先頭 XSLT 名前空間。

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 指向了官方的 W3C XSLT 命名空间。如果您使用此命名空间,就必须包含属性 version="1.0"。

从一个原始的 XML 文档开始

我们现在要把下面这个 XML 文档("cdcatalog.xml")转换为 XHTML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
  <cd>
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <country>USA</country>
    <company>Columbia</company>
    <price>10.90</price>
    <year>1985</year>
  </cd>
.
.
.
</catalog>
ログイン後にコピー

在 Internet Explorer 和 Firefox 中查看 XML 文件:

打开 XML 文件(通常通过点击某个链接) - XML 文档会以颜色化的代码方式来显示根元素及子元素。点击元素左侧的加号或减号可展开或收缩元素的结构。如需查看原始的XML源文件(不带有加号和减号),请在浏览器菜单中选择“查看页面源代码”。

在 Netscape 6 中查看 XML 文件:

打开 XML 文件,然后在 XML 文件中右击,并选择“查看页面源代码”。XML文档会以颜色化的代码方式来显示根元素及子元素。

在 Opera 7 中查看 XML 文件:

打开 XML 文件,然后在XML文件中右击,选择“框架”/“查看源代码”。XML文档将显示为纯文本。

创建 XSL 样式表

然后创建一个带有转换模板的 XSL 样式表("cdcatalog.xsl"):

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


  
  
    

My CD Collection

Title Artist
ログイン後にコピー

把 XSL 样式表链接到 XML 文档

向 XML 文档("cdcatalog.xml")添加 XSL 样式表引用:

<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?><catalog>
  <cd>
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <country>USA</country>
    <company>Columbia</company>
    <price>10.90</price>
    <year>1985</year>
  </cd>
.
.
.
</catalog>
ログイン後にコピー

元素

元素用于构建模板。

match 属性用于关联 XML 元素和模板。match 属性也可用来为整个文档定义模板。match 属性的值是 XPath 表达式(举例,match="/" 定义整个文档)。

好了,让我们看一下上一节中的 XSL 文件的简化版本:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
 <html>
 <body>
   <h2>My CD Collection</h2>
   <table border="1">
     <tr bgcolor="#9acd32">
       <th>Title</th>
       <th>Artist</th>
     </tr>
     <tr>
       <td>.</td>
       <td>.</td>
     </tr>
   </table>
 </body>
 </html>
</xsl:template>

</xsl:stylesheet>
ログイン後にコピー

代码解释:

由于 XSL 样式表本身也是一个 XML 文档,因此它总是由 XML 声明起始:

<?xml version="1.0" encoding="ISO-8859-1"?>
ログイン後にコピー

下一个元素,,定义此文档是一个 XSLT 样式表文档(连同版本号和 XSLT 命名空间属性)。

元素定义了一个模板。而 match="/" 属性则把此模板与 XML 源文档的根相联系。

元素内部的内容定义了写到输出结果的 HTML 代码。

最后两行定义了模板的结尾,及样式表的结尾。

以上转换的结果类似这样:

元素

元素用于提取某个选定节点的值,并把值添加到转换的输出流中:

<?xml version="1.0" encoding="ISO-8859-1"?>



 
 
   

My CD Collection

Title Artist
ログイン後にコピー

注释:select 属性的值是一个 XPath 表达式。此表达式的工作方式类似于定位某个文件系统,在其中正斜杠可选择子目录。

上面的转换结果类似这样:


元素

元素可用于选取指定的节点集中的每个 XML 元素。

<?xml version="1.0" encoding="ISO-8859-1"?>



  
  
    

My CD Collection

Title Artist
ログイン後にコピー

注释:select 属性的值是一个 XPath 表达式。此表达式的工作方式类似于定位某个文件系统,在其中正斜杠可选择子目录。

上面的转换结果类似这样:

结果过滤

通过在 元素中添加一个选择属性的判别式,我们也可以过滤从 XML 文件输出的结果。

<xsl:for-each select="catalog/cd[artist=&#39;Bob Dylan&#39;]">
ログイン後にコピー

合法的过滤运算符:

  • = (等于)

  • != (不等于)

  • < (小于)

  • > (大于)

<?xml version="1.0" encoding="ISO-8859-1"?>



 
  
  

My CD Collection

<xsl:for-each select="catalog/cd[artist=&#39;Bob Dylan&#39;]">
Title Artist
ログイン後にコピー

上面的转换结果类似这样:


元素用于对结果进行排序。

在何处放置排序信息

如需对结果进行排序,只要简单地在 XSL 文件中的 元素内部添加一个 元素:

<?xml version="1.0" encoding="ISO-8859-1"?>



  
  
    

My CD Collection

Title Artist
ログイン後にコピー

注释:select 属性指示需要排序的 XML 元素。

上面的转换结果类似这样:


元素

如需放置针对 XML 文件内容的条件测试,请向 XSL 文档添加 元素。

语法

<xsl:if test="expression">
  ...
  ...如果条件成立则输出...
  ...
</xsl:if>
ログイン後にコピー

在何处放置 元素

如需添加有条件的测试,请在 XSL 文件中的 元素内部添加 元素:

<?xml version="1.0" encoding="ISO-8859-1"?>


  
  
    

My CD Collection

Title Artist
ログイン後にコピー

注释:必选的 test 属性的值包含了需要求值的表达式。

上面的代码仅仅会输出价格高于 10 的 CD 的 title 和 artist 元素。

上面的转换结果类似这样:


元素

语法

<xsl:choose>
  <xsl:when test="expression">
    ... 输出 ...
  </xsl:when>
  <xsl:otherwise>
    ... 输出 ....
  </xsl:otherwise>
</xsl:choose>
ログイン後にコピー

在何处放置选择条件

要插入针对 XML 文件的多重条件测试,请向 XSL 文件添加 以及

<?xml version="1.0" encoding="ISO-8859-1"?>



  
  
    

My CD Collection

Title Artist
ログイン後にコピー

上面的代码会在 CD 的价格高于 10 时向 "Artist" 列添加粉色的背景颜色。

上面的转换结果类似这样:

查看此 XML 文件,查看此 XSL 文件,查看结果。

另一个例子

这是另外一个包含两个 元素的例子:

<?xml version="1.0" encoding="ISO-8859-1"?>



  
  
    

My CD Collection

Title Artist
ログイン後にコピー

上面的代码会在 CD 的价格高于 10 时向 "Artist" 列添加粉色的背景颜色,并在 CD 的价格高于 9 且低于等于 10 时向 "Artist" 列添加灰色的背景颜色。

上面的转换结果类似这样:


元素

元素可把一个模板应用于当前的元素或者当前元素的子节点。

假如我们向 元素添加一个 select 属性,此元素就会仅仅处理与属性值匹配的子元素。我们可以使用 select 属性来规定子节点被处理的顺序。

请看下面的 XSL 样式表:

<?xml version="1.0" encoding="ISO-8859-1"?>





My CD Collection

Title:
Artist:
ログイン後にコピー

 

XSLT 元素

如果您需要有关下列元素的更详细的信息,请点击元素列中的链接。

  • N: 表示最早支持此标签的 Netscape 版本

  • IE: 表示最早支持此标签的 Internet Explorer 版本

注释:在 IE 5 中所支持的元素可能出现非标准的行为,这是由于 IE 5 发布于 XSLT 被确立为正式的 W3C 标准之前。

は、複数の条件テストを表すために および と組み合わせて使用​​されます。 5.06.0comment 結果ツリーにコメントノードを作成します。 5.06.0copy 現在のノードのバックアップを作成します(子ノードと属性は含まれません)。 5.06.0copy-of 現在のノードのバックアップを作成します (子ノードと属性を含む)。 6.06.010進形式は、format-number() 関数を通じて数値を文字列に変換するときに使用する文字と記号を定義します。 6.0element 出力ドキュメントに要素ノードを作成します。 5.06.0fallback プロセッサが XSLT 要素をサポートしていない場合、実行するフォールバック コードが指定されます。 6.0for-each 指定されたノードセット内の各ノードを走査します。 5.06.0if には、指定された条件が true の場合にのみ適用されるテンプレートが含まれています。 5.06.0importは、あるスタイルシートから別のスタイルシートにコンテンツを流し込むために使用されます。 6.06.0include あるスタイルシートの内容を別のスタイルシートにインクルードします。 6.06.0key 名前付きキーを宣言します。 6.06.0message メッセージを出力に書き込みます (エラー報告用)。 6.06.0namespace-alias スタイルシート内の名前空間を出力内の別の名前空間に置き換えます。 6.0number 現在のノードの整数位置を決定し、数値をフォーマットします。 6.06.0otherwise 要素のデフォルトのアクションを指定します。 5.06.0output 出力ドキュメントの形式を定義します。 6.06.0paramローカルまたはグローバルパラメータを宣言します。 6.06.0preserve-spaceは、空白を保持する要素を定義するために使用されます。 6.06.0processing-instruction 処理命令ノードを生成します。 5.06.0sort 結果を並べ替えます。 6.06.0strip-spaceは、空白文字を削除する必要がある要素を定義します。 6.06.0stylesheetは、スタイルシートのルート要素を定義します。 5.06.0template 指定されたノードが一致した場合に適用されるルール。 5.06.0text スタイルシートを通じてテキストノードを生成します。 5.06.0transformは、スタイルシートのルート要素を定義します。 6.06.0value-of 選択したノードの値を抽出します。 5.06.0variableローカル変数またはグローバル変数を宣言します。 6.06.0whenは、 要素のアクションを指定します。 5.06.0with-paramは、テンプレートに渡す必要があるパラメータの値を指定します。 6.06.0
要素 説明 IE N
apply-imports インポートされたスタイルシートからテンプレートルールを適用します。 6.0
apply-templates 現在の要素または現在の要素の子要素にテンプレートを適用します。 5.0 6.0
attribute 要素に属性を追加します。 5.0 6.0
attribute-set 名前付き属性セットを作成します。 6.0 6.0
call-template 指定されたテンプレートを呼び出します。 6.0 6.0
choose

上記はクレイジーXML学習ノート(11)----------XSLTの内容です。詳細については、PHP中国語に注意してください。ウェブサイト (www.php.cn)!


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PowerPoint を使用して XML ファイルを開くことはできますか? PowerPoint を使用して XML ファイルを開くことはできますか? Feb 19, 2024 pm 09:06 PM

XML ファイルは PPT で開くことができますか? XML、Extensible Markup Language (Extensible Markup Language) は、データ交換とデータ ストレージで広く使用されている汎用マークアップ言語です。 HTML と比較して、XML はより柔軟であり、独自のタグとデータ構造を定義できるため、データの保存と交換がより便利で統一されます。 PPT (PowerPoint) は、プレゼンテーションを作成するために Microsoft によって開発されたソフトウェアです。包括的な方法を提供します。

Python を使用した XML データのマージと重複排除 Python を使用した XML データのマージと重複排除 Aug 07, 2023 am 11:33 AM

Python を使用した XML データのマージと重複排除 XML (eXtensibleMarkupLanguage) は、データの保存と送信に使用されるマークアップ言語です。 XML データを処理するとき、複数の XML ファイルを 1 つにマージしたり、重複データを削除したりする必要がある場合があります。この記事では、Python を使用して XML データのマージと重複排除を実装する方法と、対応するコード例を紹介します。 1. XML データのマージ 複数の XML ファイルがある場合、それらをマージする必要があります。

Python を使用した XML データのフィルタリングと並べ替え Python を使用した XML データのフィルタリングと並べ替え Aug 07, 2023 pm 04:17 PM

Python を使用した XML データのフィルタリングと並べ替えの実装 はじめに: XML は、データをタグと属性の形式で保存する、一般的に使用されるデータ交換形式です。 XML データを処理するとき、多くの場合、データのフィルタリングと並べ替えが必要になります。 Python には、XML データを処理するための便利なツールとライブラリが多数用意されています。この記事では、Python を使用して XML データをフィルタリングおよび並べ替える方法を紹介します。 XML ファイルの読み取り 始める前に、XML ファイルを読み取る必要があります。 Python には XML 処理ライブラリが多数ありますが、

Python で XML データを CSV 形式に変換する Python で XML データを CSV 形式に変換する Aug 11, 2023 pm 07:41 PM

Python の XML データを CSV 形式に変換する XML (ExtensibleMarkupLanguage) は、データの保存と送信に一般的に使用される拡張可能なマークアップ言語です。 CSV (CommaSeparatedValues) は、データのインポートとエクスポートに一般的に使用されるカンマ区切りのテキスト ファイル形式です。データを処理するとき、分析や処理を容易にするために、XML データを CSV 形式に変換する必要がある場合があります。 Pythonは強力です

PHP を使用して XML データをデータベースにインポートする PHP を使用して XML データをデータベースにインポートする Aug 07, 2023 am 09:58 AM

PHP を使用した XML データのデータベースへのインポート はじめに: 開発中、さらなる処理や分析のために外部データをデータベースにインポートする必要がよくあります。一般的に使用されるデータ交換形式として、XML は構造化データの保存と送信によく使用されます。この記事では、PHP を使用して XML データをデータベースにインポートする方法を紹介します。ステップ 1: XML ファイルを解析する まず、XML ファイルを解析し、必要なデータを抽出する必要があります。 PHP には XML を解析するためのいくつかの方法が用意されており、最も一般的に使用されるのは Simple を使用する方法です。

Python は XML と JSON 間の変換を実装します Python は XML と JSON 間の変換を実装します Aug 07, 2023 pm 07:10 PM

Python は XML と JSON 間の変換を実装します はじめに: 日常の開発プロセスでは、異なる形式間でデータを変換する必要があることがよくあります。 XML と JSON は一般的なデータ交換形式であり、Python ではさまざまなライブラリを使用して XML と JSON の間で変換できます。この記事では、一般的に使用されるいくつかの方法をコード例とともに紹介します。 1. Python で XML を JSON に変換するには、xml.etree.ElementTree モジュールを使用できます。

Python を使用した XML でのエラーと例外の処理 Python を使用した XML でのエラーと例外の処理 Aug 08, 2023 pm 12:25 PM

Python を使用した XML でのエラーと例外の処理 XML は、構造化データの保存と表現に使用される一般的に使用されるデータ形式です。 Python を使用して XML を処理すると、エラーや例外が発生することがあります。この記事では、Python を使用して XML のエラーと例外を処理する方法を紹介し、参考用のサンプル コードをいくつか示します。 Try-Except ステートメントを使用して XML 解析エラーを捕捉する Python を使用して XML を解析すると、時々、次のようなエラーが発生することがあります。

Python は XML 内の特殊文字とエスケープ シーケンスを解析します Python は XML 内の特殊文字とエスケープ シーケンスを解析します Aug 08, 2023 pm 12:46 PM

Python は XML 内の特殊文字とエスケープ シーケンスを解析します XML (eXtensibleMarkupLanguage) は、異なるシステム間でデータを転送および保存するために一般的に使用されるデータ交換形式です。 XML ファイルを処理する場合、特殊文字やエスケープ シーケンスが含まれる状況に遭遇することが多く、これにより解析エラーやデータの誤解が生じる可能性があります。したがって、Python を使用して XML ファイルを解析する場合は、これらの特殊文字とエスケープ シーケンスの処理方法を理解する必要があります。 1. 特殊文字と

See all articles