简体   繁体   中英

convert xml to html using php

I want to convert xml data into html. Below is sample xml data and I want to get/convert it in html format.

<content type="html">
  <paragraph id="1291266887">
      <div class="red">
        <span id="main_post_id">
          <p>ten post przedstawia jak wys&#x142;a&#x107;  znacznik&#xF3;w w ust <strong>Ling</strong> -  xyz</p>
          <p>tags znane jako <span class="translation_section  section_2">bezpieczne</span>, b&#x119;d&#x105;  traktowane jako sekcje pkt</p>
          <p>innych materia&#x142;&#xF3;w dziel&#x105;  si&#x119; na <em>literach</em></p>
        </span>
      </div>
  </paragraph>
</content>

ie I want to get all the html code contained between <paragraph id="..."></paragraph> . I want to do it using php. When I convert it in array using php, it gives all data in array of div, p, span. But I want whole html contained in <paragraph>..</paragraph> tag in a single array.

Please help needed here. Let me know best ways for this.

Thanks.

It's easy to use xslt in PHP. If you got the xml in file "data.xml" and the xslt-script in "script.xsl" this is all to do:

<?php  
$proc=new XsltProcessor;  
$proc->importStylesheet(DOMDocument::load("data.xsl"));  
echo $proc->transformToXML(DOMDocument::load("script.xml"));  
?>  

A simple xslt-script could look like this:

<?xml version="1.0" encoding="utf-8"?>  
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
 <xsl:output method="html" encoding="UTF-8" indent="yes"/>  
  <xsl:template match="/">  
   <html>  
    <head>  
    </head>  
    <body>  
     <xsl:copy-of select="//paragraph"/>  
    </body>  
   </html>  
  </xsl:template>  
</xsl:stylesheet>  

编写XSLT样式表进行转换,并编写xslt扩展名以将其应用于XML。

After running the following code in the browser save page , so the file is created in two stages

<?php
$xml=simplexml_load_file("My_Xml.xml");
print_r($xml);
?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM