php - 使用 php 将 xml 转换为 html

标签 php html xml xmltextreader xslt

我想将 xml 数据转换成 html。下面是示例 xml 数据,我想以 html 格式获取/转换它。

<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>

即我想获取 <paragraph id="..."></paragraph> 之间包含的所有 html 代码.我想用 php 来做。当我使用 php 将其转换为数组时,它会提供 div、p、span 数组中的所有数据。但我希望整个 html 包含在 <paragraph>..</paragraph> 中单个数组中的标记。

请在这里需要帮助。让我知道最好的方法。

谢谢。

最佳答案

在 PHP 中使用 xslt 很容易。如果您在文件“data.xml”中获得了 xml 并且在“script.xsl”中获得了 xslt 脚本,那么这就是全部要做的:

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

一个简单的 xslt 脚本可能如下所示:

<?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>  

关于php - 使用 php 将 xml 转换为 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4332350/

相关文章:

php - 使用 PHP 向客户添加 Stripe 订阅

jquery - 从 Popover 中移除阴影

java - Android 按钮崩溃

java - 将新的 XML 节点保存到文件

java - Android - 二进制 XML 文件行 #19 : Error inflating class fragment

php - 使用 $GLOBAL 来防止 SELECT latest ID+1 和 INSERT 之间的重复键问题

php - 使用多个连接 codeigniter

php - memcached 是关于时间的吗?

html - 为什么我的背景图片没有覆盖整个页面?

javascript - 为什么我没有使用 ajax 从按钮获取动态值