首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这段代码不输出任何XSLT

为什么这段代码不输出任何XSLT
EN

Stack Overflow用户
提问于 2015-09-25 16:06:37
回答 2查看 81关注 0票数 0

我对XSLT完全是个新手。所以我试着做一个输出元素值的例子。输出格式为纯文本格式。这是一个名为cdcatalog.xml的XML文件:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="catalog.xsl"?>
<catalog>
    <cd>
        <title>Empire</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
    </cd>
    <cd>
        <title>Hide your heart</title>
        <artist>Bonnie Tyler</artist>
        <country>
            <europe_country>Bulgaria</europe_country>
            <azia_coutry>China</azia_coutry>
        </country>
        <company>CBS Records</company>
        <price>9.90</price>
        <year>1988</year>
    </cd>
</catalog>

这是名为cdcatalog.xsl的XSL文件

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="text"/>
    <xsl:template match="/">
        <xsl:for-each select="cd">
            <xsl:value-of select="title"/>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

我期望的输出是这样的

代码语言:javascript
运行
复制
Empire
Hide your heart

但“输出”窗口中不显示任何内容。我哪里错了?提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2015-09-25 16:14:37

,但cdcatalog.xsl中的href是xsl。

票数 2
EN

Stack Overflow用户

发布于 2015-09-25 16:27:56

在编写模板时,尝试直接针对(即匹配)您感兴趣的内容(在本例中为title元素)。

XSLT样式表

正如您所看到的,还有第二个模板与text()匹配。如果省略它,则输出输入文档中的所有文本内容,因为这是XSLT处理器对文本节点的默认行为。

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="text" encoding="UTF-8" />

    <xsl:template match="title">
      <xsl:value-of select="."/>
      <xsl:text>&#10;</xsl:text>
    </xsl:template>

    <xsl:template match="text()"/>

</xsl:transform>

文本输出

代码语言:javascript
运行
复制
Empire
Hide your heart

在线试用此解决方案here

顺便说一句,请确保您的元素的命名一致。名为azia_coutry的元素与asia_coutryasia_country完全不同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32777589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档