Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 加载样式表时出错:分析XSLT样式表失败。?_Html_Xml_Xslt_Transform_Styling - Fatal编程技术网

Html 加载样式表时出错:分析XSLT样式表失败。?

Html 加载样式表时出错:分析XSLT样式表失败。?,html,xml,xslt,transform,styling,Html,Xml,Xslt,Transform,Styling,当我尝试在Firefox中加载xml时,会收到此错误消息;当我尝试在Safari和Google中加载xml时,会收到一个空白页面。我遗漏了一个错误吗? 我的造型要求: 年份——粗体 标题——深蓝色字体,字重900 导演深绿色,粗体 男演员为蓝色,女演员为粉红色 字体——斜体和下划线 时间----深红色,粗体,下划线 XML: 1985 早餐俱乐部 约翰休斯 埃米利奥·埃斯特维兹 保罗葛里逊 安东尼·迈克尔·霍尔 贾德·纳尔逊 莫莉·林瓦尔德 艾莉希迪 喜剧、戏剧 97 1994 阿甘正传

当我尝试在Firefox中加载xml时,会收到此错误消息;当我尝试在Safari和Google中加载xml时,会收到一个空白页面。我遗漏了一个错误吗? 我的造型要求:

  • 年份——粗体
  • 标题——深蓝色字体,字重900
  • 导演深绿色,粗体
  • 男演员为蓝色,女演员为粉红色
  • 字体——斜体和下划线
  • 时间----深红色,粗体,下划线
XML:


1985
早餐俱乐部
约翰休斯
埃米利奥·埃斯特维兹
保罗葛里逊
安东尼·迈克尔·霍尔
贾德·纳尔逊
莫莉·林瓦尔德
艾莉希迪
喜剧、戏剧
97
1994
阿甘正传
罗伯特·泽梅基斯
汤姆汉克斯
迈克尔蒂·威廉姆森
加里·西尼斯
海莉·乔尔·奥斯门特
萨利菲尔德
罗宾赖特
喜剧、戏剧、浪漫
142
XSLT:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/">
    <html>
      <body>
        <xsl:for-each select="streaming/movies">
          <div>
            <p><xsl:value-of select="year" style="font-weight:bold;"/></p>
            <p><xsl:value-of select="title" style="color:DarkBlue; font-
weight:900;"/></p>
            <p><xsl:value-of select="director" style="color:DarkGreen; font-
weight:bold;"/></p>
            <p>Actors</p>
            <ul>
              <xsl:for-each select="streaming/movies/actors">
                <xsl:if test="name() = 'male'">
                  <li><xsl:value-of select="male" style="color:blue;"/></li>
                </xsl:if>
                <xsl:if test="name() = 'female'">
                  <li><xsl:value-of select="male" style="color:pink;"/></li>
                </xsl:if>
              </xsl:for-each>
            </ul>
            <p><xsl:value-of select="type" style="text-decoration:underline; 
font-style:italic;"/></p>
            <p><xsl:value-of select="time" style="color:DarkRed; text-
decoration:underline; font-weight:bold;"/></p>
          </div>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

演员


您所有的
xsl:value of
语句似乎都有
style
属性

<p>
   <xsl:value-of select="year" style="font-weight:bold;"/>
</p>

哇,是的,你说得太对了。愚蠢的错误。然而,我对演员的看法仍然不正确。这与问题的内容无关。但这是因为你在做
。此时您的上下文已经在
movies
节点上,因此您需要做的就是
事实上,您需要做
以获取
actors
下的子节点,然后做
以输出子节点的实际文本值。您已经被告知错误是什么,但是问题的根本原因是您正在运行此样式表,而没有看到错误消息。一般来说,在浏览器中运行XSLT并不是最好的开发环境,但大多数浏览器都会在开发人员控制台中提供诊断功能,您需要熟悉如何找到它们。我还建议将其作为测试XSLT的工具,但不幸的是,这项服务目前无法提供…@TimC我真的认为你应该发布一个规范的答案。这项服务现已恢复。
<p>
   <xsl:value-of select="year" style="font-weight:bold;"/>
</p>
<p style="font-weight:bold;">
   <xsl:value-of select="year" />
</p>