You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将XML文件与XSLT 3.0文件关联?附示例代码

如何关联XML与XSL文件并解决空白页面问题

一、正确的关联方式

你提到的<?xml-stylesheet?>指令是完全正确的关联方法,只需注意格式和路径细节:

  1. 将指令放在XML文件的最开头(若有XML声明,则紧跟其后)
  2. 确保href路径指向正确的XSL文件(同目录下直接写文件名,子目录用相对路径如./xsl/xxx.xsl)

示例关联后的XML文件开头:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="your-stylesheet.xsl"?>
<PERSONAE PLAY="OTHELLO">
    <!-- 你的XML内容 -->
</PERSONAE>

二、空白页面的原因及修正

你的XSL代码存在语法错误,导致浏览器无法解析,从而显示空白:
错误行:

<xsl:template match="PERSONA[count(tokenize(., ',') = 2]">

count()函数的括号未闭合,修正后应为:

<xsl:template match="PERSONA[count(tokenize(., ',')) = 2]">

另外,需注意浏览器对XSLT 3.0的支持有限(如Chrome仅部分支持)。若要在浏览器中直接运行,建议降级为兼容性更好的XSLT 1.0,改写相关语法:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    
 <xsl:strip-space elements="PERSONAE"/>
 <xsl:template match="PERSONAE">
   <html>
     <head>
       <title>The Cast of <xsl:value-of select="@PLAY"/></title>
     </head>
     <body>
       <xsl:apply-templates/>
     </body>
   </html>
 </xsl:template>
 
 <xsl:template match="TITLE">
   <h1><xsl:value-of select="."/></h1>
 </xsl:template>
 
 <xsl:template match="PERSONA[contains(., ',')]">
   <p><b><xsl:value-of select="substring-before(., ',')"/></b>: <xsl:value-of select="substring-after(., ',')"/></p>
 </xsl:template> 
 
 <xsl:template match="PERSONA">
   <p><b><xsl:value-of select="."/></b></p>
 </xsl:template>

</xsl:stylesheet>

三、验证与排查

  1. 确认XML和XSL文件路径正确,文件名无特殊字符或空格(若有空格,href需用引号包裹)
  2. 修正语法错误后重新打开XML文件
  3. 若仍有问题,打开浏览器开发者工具(F12)查看控制台错误信息,定位具体问题

内容的提问来源于stack exchange,提问作者Kate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 16:10:25