Home  >  Article  >  Backend Development  >  How to use php extended XSLT for XML and XHTML conversion

How to use php extended XSLT for XML and XHTML conversion

王林
王林Original
2023-07-28 14:28:46843browse

How to use PHP extension XSLT to convert XML and exhibit. PHP provides XSLT extensions to make this conversion process simple and efficient. This article will introduce how to use PHP to extend XSLT to achieve XML to XHTML conversion and provide code examples.

Step 1: Install and enable the XSLT extension
Before you begin, make sure your PHP environment has the XSLT extension installed and enabled. In the PHP configuration file (php.ini), find the following line and confirm that there is no comment symbol (;) in front of it:

extension=php_xslt.dll  ; Windows
extension=xsl.so        ; Linux

If you do not find the above line, you can try to search for
XSLT

related Configuration, install and enable according to your operating system and PHP version.

Step 2: Create XML and XSLT filesFirst, we need to prepare an XML file as input, and an XSLT file to define the rules of transformation. The following is an example of a simple XML file (data.xml):

<?xml version="1.0" encoding="UTF-8"?>
<books>
  <book>
    <title>PHP Basics</title>
    <author>John Doe</author>
  </book>
  <book>
    <title>Web Development</title>
    <author>Jane Smith</author>
  </book>
</books>

Then, create an XSLT file (style.xsl) and define the following transformation rules:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
      <head>
        <title>Books</title>
      </head>
      <body>
        <h1>Book List</h1>
        <xsl:for-each select="books/book">
          <div>
            <h2><xsl:value-of select="title"/></h2>
            <p><xsl:value-of select="author"/></p>
          </div>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Step 3: Use XSLT conversion

Now, we can use PHP's XSLT extension to achieve XML to XHTML conversion. The following is a simple PHP code example:

<?php
// 加载XML和XSLT文件
$xml = new DOMDocument();
$xml->load('data.xml');

$xslt = new XSLTProcessor();
$xslt->importStylesheet(new SimpleXMLElement(file_get_contents('style.xsl')));

// 执行转换
$convertedHtml = $xslt->transformToXml($xml);

// 在浏览器上输出转换后的XHTML
header('Content-Type: text/html; charset=UTF-8');
echo $convertedHtml;
?>

In this example, we first create a
DOMDocument

object and load the XML file (data.xml). Then, an

XSLTProcessor object is created and the XSLT file (style.xsl) is imported through the importStylesheet() method. Finally, the conversion is performed through the transformToXml() method and the converted XHTML is saved as a string in the $convertedHtml variable. At the end, by setting the correct Content-Type header and outputting the converted XHTML to the browser. Step 4: Run the code and verify the resultsSave the above code as a PHP file and access the file in your browser. If everything goes well, you will see the converted XHTML web page. In this example, the titles and author information for two books will be displayed.

Summary:
By using PHP's XSLT extension, we can easily convert XML files into XHTML format for display on the browser. Just make sure the XSLT extension is installed and enabled, create the appropriate XML and XSLT files, and then use the

XSLTProcessor

class to perform the transformation operation. I hope the code examples provided in this article can help you use XSLT to convert XML to XHTML during the development process.

The above is the detailed content of How to use php extended XSLT for XML and XHTML conversion. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn