问题
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łać znaczników w ust <strong>Ling</strong> - xyz</p>
<p>tags znane jako <span class="translation_section section_2">bezpieczne</span>, będą traktowane jako sekcje pkt</p>
<p>innych materiałów dzielą się na <em>literach</em></p>
</span>
</div>
</paragraph>
</content>
i.e. 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.
回答1:
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>
回答2:
Write a XSLT stylesheet to convert it, and the xslt extension to apply it to the XML.
回答3:
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);
?>
来源:https://stackoverflow.com/questions/4332350/convert-xml-to-html-using-php