ホームページ >php教程 >php手册 >PHP および XSL スタイルシートを使用して XML ドキュメントを変換する

PHP および XSL スタイルシートを使用して XML ドキュメントを変換する

WBOY
WBOYオリジナル
2016-06-13 12:43:141632ブラウズ

PHP是不少在Web开发领域奋战的勇士们所选用的武器,因为它是一种很直观的编程语言,有强大的函数,良好的跨平台兼容性,还有它是免费的。从网上的小商店到大型企业的网站都能看到PHP的影子。

 
PHP有一点特性经常被人们忽视,那就是和XSL stylesheets合作对XML进行解析的能力。下面就让我们来看看怎样在PHP中设置一个XSL解析器以及你该如何使用这一功能。


例子
列表A是一个简单的订单文档,我们会将这个文档输入XSL解析器。同时,列表B中的XSL stylesheet也会被输入XSL解析器。

Listing A: order.xml



  9900234
 
    1234
    5.95
    100
    595.00
    Super Widget Clamp
 

 
    6234
    22.00
    10
    220.00
    Mighty Foobar Flange
 

 
    9982
    2.50
    1000
    2500.00
    Deluxe Doohickie
 

 
    3256
    389.00
    1
    389.00
    Muckalucket Bucket
 

  1111
  3704.00
  07/07/2002
  8876

Listing B: order.xsl



 
 
 
   
     
       
         
         
       

     
   
 












アカウント SKU 説明< /th>
価格
数量
小計


gt;gt;
gt;





   

概要
この例では、主に PHP の 3 つの XSL 関数を使用します。最初に XSL 引数の例を作成し、次に、入力されるすべての文書をこの XSL 引数に処理して返します。その結果、最後に、この XSL 呼び出しがもう必要ない場合は、強制終了されます。


は、作成、処理、強制終了されます。
は、他の XSL を使用しやすいように、新しい XSL プロセスを内部に保存します。関数ではこの XSL プロセスを使用し、PHP はオブジェクトではなく、この XSL プロセスのフレーズを提供します。この XSL ハンドルを構築するコマンドは xslt_create です。関数は、以下に示すように、フレーズを返します。

$handle = xslt_create();

を真に正しく解析し、XSLT が処理できるようにするには、PHP の xslt_process 関数を必ず使用する必要があります。この関数には、別のパラメータを取得する必要があります。

ここでは 1 つのパラメータを使用します。基本的な方法では、xslt_process には 3 つのパラメータが提供されます。最初のパラメータは、私が以前に作成した XSL プロトコルのフレーズです。2 番目のパラメータは、入力された XML ドキュメントのファイル名です。この関数は処理結果を返します。以下に例を示します。

$return = xslt_process($handle, $xmlfile, $xslfile);

最後に使用する関数は xslt_free です。この関数は、内部に保存されている XSL インスタンスを取得し、内部空間を解放するために使用されます。必要なパラメーターは 1 つだけです。つまり、内部に保存されている XSL サンプルの句軸です。例:

xslt_free($handle);

の結合は

の下で私が上のページの個々のコード分割を結合して、PHP によって XSL スタイルシートを介して XML 文を処理する方法を考えています。私は入力 XML 文として列表 A を使用し、私として列表 B を使用しています。们XSL 入力。リスト C はこの例の完全な PHP コードです:

リスト C: order.php

$xmlfile = "order.xml";
$xslfile = "order.xsl";
$args = array("column"=>"数量", "order"=>"降順");
$engine = xslt_create();
$output = xslt_process($engine, $xmlfile, $xslfile, NULL, NULL, $args);
print $output;
xslt_free($engine);
?>

ここで注意が必要ですが、変更はコード内で行われています。 XSL スタイルシートでは、いくつかのパラメータを指定することにより、アドレスなどの領域を変更できます。


この著者の Brian Schaffner は、富士通証券株式会社の副主任です。他は富士通の技術監査公司がフレームワーク、設計、および公開サポートを提供しています。

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