以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 WORD to XML, HTML to XML 』  (http://bbs.xml.org.cn/list.asp?boardid=13)
----  急急急!在xsl里怎样解析html代码  (http://bbs.xml.org.cn/dispbbs.asp?boardid=13&rootid=&id=28027)


--  作者:123loading
--  发布时间:3/2/2006 2:48:00 PM

--  急急急!在xsl里怎样解析html代码
在php5下使用xml和xsl,代码如下
<?php
$xml = <<<EOB
<allusers>
<user>
  <uid>Tom</uid>
</user>
<user>
  <uid>Jack</uid>
</user>
</allusers>
EOB;
$xsl = <<<EOB
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<xsl:template match="allusers">
  <html><body>
   <h2>Users</h2>
   <table>
   <xsl:for-each select="user">
     <tr>
      <td>
       <xsl:value-of select="uid"/>
     </td>
      <td>
       <xsl:value-of select="php:function('msg',string(uid))" />
     </td>
     </tr>
   </xsl:for-each>
   </table>
  </body></html>
</xsl:template>
</xsl:stylesheet>
EOB;


function msg($abc=''){
   return '<font color="#FF0000">'.$abc.'</font>';
}

$xmldoc = DOMDocument::loadXML($xml);
$xsldoc = DOMDocument::loadXML($xsl);

$proc = new XSLTProcessor();
$proc->registerPHPFunctions();//注册函数,这样才能在xsl里使用msg函数
$proc->importStyleSheet($xsldoc);
echo $proc->transformToXML($xmldoc);
?>
输出结果:
Users
Tom <font color="#FF0033">Tom</font>
Jack <font color="#FF0033">Jack</font>

请各位大侠指教,有什么方法使msg函数返回的字符串能解析为html代码,结果是:
Users
Tom Tom
Jack Jack

急急急!
小弟在这里万分感激!


--  作者:lizhenwei
--  发布时间:8/12/2006 9:18:00 PM

--  
<xsl:value-of select="php:function('msg',string(uid))" disable-output-escaping="yes" />

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms