XMLとXSLを使用して動的ページを生成するコードの詳細な説明
xml (Extensible Markup Language) は、ある種の w3c 標準のように見えるかもしれません。現時点では実質的な影響はほとんどなく、たとえ後で役立つようになったとしても、それはずっと先のことになります。しかし、実際にはすでに使われているのです。したがって、xml がお気に入りの htmlエディター に追加されるまで待たずに使用を開始してください。今すぐさまざまな問題を解決できます。
sparks.com では、javaオブジェクトから HTML データ表示まで、さまざまなシステム間でのデータ表現を標準化しています
特に、データの共有と操作が容易であることがわかりました。非常に基本的な XML 構造で標準化されている限り、XML を使用する多くの効果的な方法を発見しました。ここでは、現在のアプリケーションについて詳しく説明します。xml を使用する前に、次の XML データ形式を作成します。使用したい情報とは異なります。
動的 XML を生成する
データベースから HTML を生成することは新しいことではありませんが、ここでの XML 生成手順は新しいです。
テンプレート言語として xsl を使用する
xsl (Extensible Stylesheet)。 Language) は、複数の
statictemplate
generate htmlxml として記述するとより効率的です。これは正しくないかもしれません。しかし、ユーザーに表示される HTML ページは、実際には xml と xsl の組み合わせの結果です。
xml の標準化機能は、残念なことに、非常に柔軟であるため、空白に直面することがあります。 どの XML プロジェクトでも、最初のステップは、次の決定を行うことです: どのデータを含めるか dtd ( dom (ドキュメント オブジェクト モデル) を使用するか、sax (xml 用の簡易 API) 解析を使用するか データを決定する: なぜなら、標準の XML 形式はなく、開発者は独自の形式を自由に開発できるからです。あなたの形式が 1 つのアプリケーションでのみ認識される場合、その形式を読み取ることができる他のプログラムが存在する場合にのみ、その形式を使用することができます。ほとんどのシステムはタグを無視し、認識できないため、XML 形式を変更する最も安全な方法は、タグを変更するのではなく、タグを追加することです。 ここをクリックして XML データ形式の例を確認してくださいsparks.com では、すべてのページですべてのデータが使用されているわけではありませんが、さまざまな製品プレゼンテーションのニーズを検討して、適用できる非常に完全な XML データ形式を開発しました。たとえば、製品詳細ページには製品参照ページよりも多くのデータが表示されます。ただし、各ページの xsl テンプレートは必要なフィールドのみを使用するため、どちらの場合でも同じデータ形式が使用されます。 dtd を使用するかどうか sparks.com では、単に正しい xml ではなく、よく整理された xml を使用します。前者は dtd を必要としないからです。 DTD は、ユーザーがクリックしてからページを表示するまでの間に処理レイヤーを追加します。このレイヤーには多大な処理が必要であることがわかりました。もちろん、XML 形式で他の企業と通信するときに DTD を使用するのは依然として良いことです。なぜなら、dtd は送受信時にデータ構造が正しいことを保証できるからです。 解析エンジンを選択してください現在、いくつかの解析エンジンが利用可能です。どちらを選択するかは、ほぼ完全にアプリケーションのニーズによって決まります。 DTD を使用する場合は、解析エンジンが XML を DTD で検証できるようにする必要があります。検証を別のプロセスに入れることもできますが、パフォーマンスに影響を及ぼします。 sax と dom は 2 つの基本的な分析モデルです。 Sax はevents
に基づいているため、XML が解析されるとイベントがエンジンに送信されます。次に、イベントが出力ファイルと同期されます。 DOM 解析エンジンは、動的 XML データと XSL スタイル シートの階層ツリー構造を確立します。 DOM ツリーにランダムにアクセスすることで、あたかも XSL スタイルシートで決定されたかのように XML データを提供できます。 SAX モデルに関する議論は主に、DOM 構造の過剰なメモリ削減と XSL スタイル シートの解析時間の高速化に焦点を当てています。 しかし、sax を使用する多くのシステムがその機能を十分に活用していないことがわかりました。これらのシステムは、これを使用して DOM 構造を構築し、DOM 構造を通じてイベントを送信します。このアプローチでは、XML 処理の前にスタイルシートから DOM を構築する必要があるため、パフォーマンスが低下します。 2. 動的 XML を生成するXML 形式が確立されたら、それをデータベースから動的に移植できるメソッドが必要です。
xml ドキュメントの生成は、文字列を処理できるシステムのみが必要なため、比較的簡単です。 Javaサーブレット、エンタープライズJavabeanサーバー、jdbc、rdbms(リレーショナルデータベース管理システム)を使用してシステムを構築しました。
サーブレットは、XML ドキュメントを生成するタスクをエンタープライズ Javabean (ejb) にオフロードすることにより、製品情報リクエストを処理します。
ejb は jdbc を使用して、データベースから必要な製品の詳細をクエリします。
ejbはxmlファイルを生成し、それをサーブレットに渡します。
サーブレットは解析エンジンを呼び出して、xml ファイルと静的 xsl スタイル シートから html 出力を作成します。 (使用に関する追加情報については、
XML生成プロセスを開始するコードはejbメソッドに配置されます。このインスタンスは、生成された XML 文字列を保存するための文字列バッファをすぐに作成します。
stringbuffer xml = new stringbuffer(); xml.append(xmlutils.begindocument("/browse_find/browse.xsl", "browse", request)); xml.append(product.toxml()); xml.append(xmlutils.enddocument("browse"); out.print(xml.tostring());
次の 3 つの xml.append() 変数自体は、他のメソッドへの呼び出しです。
ファイル ヘッダーの生成
最初の追加メソッドは、xmlutils クラスを呼び出して XML ファイル ヘッダーを生成します。 Java サーブレットのコードは次のとおりです:
public static string begindocument(string stylesheet, string page) { stringbuffer xml = new stringbuffer(); xml.append( "<?xml version=\"1.0\"?>\n") .append( "<?xml-stylesheet href=\"") .append(stylesheet).append( "\"") .append( " type =\"text/xsl\"?>\n"); xml.append( "<").append(page).append(">\n"); return xml.tostring(); }
このコードは、XML ファイル ヘッダーを生成します。 タグは、このファイルをバージョン 1.0 をサポートする XML ファイルとして定義します。コードの 2 行目は、データを表示するための正しいスタイル シートの場所を指します。最後に含まれるのは項目レベルのタグ (この例では
<?xml version="1.0"?> <?xml-stylesheet href="/browse_find/browse.xsl" type="text/xsl"?> <browse>
製品情報を入力してください
ファイルヘッダーの完成後、コントロールメソッドは Java オブジェクトを呼び出して XML を生成します。この例では、product オブジェクトが呼び出されます。製品オブジェクトは 2 つのメソッドを使用して XML 表現を生成します。最初のメソッド toxml() は、
public string toxml() { stringbuffer xml = new stringbuffer( "<product>\n"); xml.append(internalxml()); xml.append( "</product>\n"); return xml.tostring(); } public string internalxml() { stringbuffer xml = new stringbuffer( "\t") .append(producttype).append( "\n"); xml.append( "\t").append(idvalue.trim()) .append( "\n"); xml.append( "\t").append(idname.trim()) .append( "\n"); xml.append( "\t").append(page.trim()) .append( "\n"); 厖? xml.append( "\t").append(amount).append("\n"); xml.append( "\t").append(vendor).append("\n"); xml.append( "\t\n"); xml.append( "\t").append(pubdesc).append("\n"); xml.append( "\t").append(vendesc).append("\n"; 厖? return xml.tostring(); }
ファイルを閉じます
最後に、xmlutils.enddocument() メソッドが呼び出されます。この呼び出しにより xml タグが閉じられ (この場合)、最終的に構造化 xml ファイルが完成します。制御メソッドからの文字列バッファ全体も文字列に変換され、元の http リクエストを処理したサーブレットに返されます。
3. テンプレート言語として xsl を使用する
HTML 出力を取得するには、生成された XML ファイルを、XML データの表現方法を制御する XSL テンプレートと結合します。私たちの xsl テンプレートは、注意深く構成された xsl タグと
html タグで構成されています。
テンプレートの構築を開始します xsl テンプレートの先頭は、以下のコードのようになります。コードの最初の行は必須であり、このファイルを xsl スタイル シートとして定義します。 xmlns:xsl=
属性 は、このファイル で使用される XML 名前空間を参照し、version= 属性は名前空間のバージョン番号を定義します。ファイルの最後でタグを閉じます。
次に、よく構成された HTML を見てみましょう。 XML 解析エンジンによって処理されるため、適切に構成された XML のすべてのルールに準拠する必要があります。基本的に、これはすべての開始タグに対応する終了タグが必要であることを意味します。たとえば、通常は閉じられない
タグは、
で閉じる必要があります。<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match="basketpage"> <html> <head> <title>shopping bag / adjust quantity</title> </head> <body bgcolor="#cccc99" bgproperties="fixed" link="#990000" vlink="#990000"> <br> <br> </xsl:template> </xsl:stylesheet>
choose
の
if-then-else 構造の先頭に似ています。 XSL では、choose タグは、コードが入る部分で、割り当てによってアクションがトリガーされることを示します。属性が割り当てられた 在这个例子里,when标签会为quantity标签检查xml。如果quantity标签里含有值为真的error属性,quantity标签将会显示列在下面的表格单元。如果属性的值不为真,xsl将会显示otherwise标签间的内容。在下面的实例里,如果error属性不真,则什么都不会被显示。 for-each for-each 循环在程序遇到标签时开始。这个循环将在程序遇到标签时结束。一旦这个循环运行,每次标签出现时都会应用这个模板。 四、生成html 将来的某一时刻,浏览器将会集成xml解析引擎。到那时,你可以直接向浏览器发送xml和xsl文件,而浏览器则根据样式表中列出的规则显示xml数据。不过,在此之前开发者们将不得不在他们服务器端的系统里创建解析功能。 在sparks.com,我们已经在java servlet里集成了一个xml解析器。这个解析器使用一种称为xslt (xsl transformation)的机制,按xsl标签的说明向xsl模板中添加xml数据。 当我们的java servlet处理http请求时,servlet检索动态生成的xml,然后xml被传给解析引擎。根据xml文件中的指令,解析引擎查找适当的xsl样式表。解析器通过dom结构创建html文件,然后这个文件再传送给发出http请求的用户。 如果你选择使用sax模型,解析器会通读xml源程序,为每个xml标签创建一个事件。事件与xml数据对应,并最终按xsl标签向样式表中插入数据。 以上がXMLとXSLを使用して動的ページを生成するコードの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。<xsl:choose>
<xsl:when test="quantity[@error='true']">
<td bgcolor="#ffffff"><img height="1" width="1" src="http://img.sparks.com/images/i-catalog/sparks_images/sparks_ui/clearpixel.gif"/></td>
<td valign="top" bgcolor="#ffffff" colspan="2">
<font face="verdana, arial" size="1" color="#cc3300"><b>*not enough in stock. your quantity was adjusted accordingly.</b></font></td>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
<xsl:for-each select="package">
<xsl:apply-templates select="product"/>
</xsl:for-each>

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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 処理ライブラリが多数ありますが、

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

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. 特殊文字と
