首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >处理节点,将xml转换为xlst

处理节点,将xml转换为xlst
EN

Stack Overflow用户
提问于 2014-03-14 09:31:21
回答 1查看 188关注 0票数 1

在一次又一次地尝试弄清楚这里是我的xlst剩下的所有东西之后。我试图从xml文档中提取子元素并将其输出,但即使是格式良好的文档,我也会遇到一些解析错误。

代码语言: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="FamousMountains/mountain"/>
        <xsl:value-of select="name[@language='English'] "/>

      </xsl:template>

</xsl:stylesheet>

这是xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!-- Note: This is a comment-->
<?xml-stylesheet type="text/xsl" href="Asg06.xsl"?>
<FamousMountains>
  <mountain>
    <name language="English">Mount Everest</name>
    <name language="PigLatin">ountMa verestEa</name>
    <location>Nepal</location>
    <height units="feet">29035</height>
  </mountain>
  <mountain>
    <name language="English">Mount Ranier</name>
    <location>Washington</location>
    <height units="feet">14411</height>
  </mountain>
  <mountain>
    <name language="English">Mount St. Helens</name>
    <location>Washington</location>
    <height units="feet">8364</height>
  </mountain>
  <mountain>
    <name language="English">Mount Washington</name>
    <name language="PigLatin">ountMa ashingtonWa</name>
    <location>New Hampshire</location>
    <height units="feet">6288</height>
  </mountain>
  <mountain>
    <name language="English">Mount Bonnell</name>
    <name language="PigLatin">ountMa onnellBa</name>
    <location>Austin</location>
    <height units="feet">800</height>
  </mountain>
  <mountain>
    <name language="English">Mount Vesuvius</name>
    <name language="PigLatin">ountMa esuviusVa</name>
    <location>Italy</location>
    <height units="feet">4203</height>
  </mountain>
  <mountain>
    <name language="English">Mount Etna</name>
    <name language="PigLatin">ountMa tnaEa</name>
    <location>Sicily</location>
    <height units="feet">10922</height>
  </mountain>
</FamousMountains>

下面是xlst应该输出的内容:

代码语言:javascript
复制
Put your name here
Famous Mountains of the World

Mountain Name: Mount Everest
Mountain Name: (ountMa verestEa)

Mountain Name: Mount Ranier
Mountain Name: ()

Mountain Name: Mount St. Helens
Mountain Name: ()

Mountain Name: Mount Washington
Mountain Name: (ountMa ashingtonWa)

Mountain Name: Mount Bonnell
Mountain Name: (ountMa onnellBa)

Mountain Name: Mount Vesuvius
Mountain Name: (ountMa esuviusVa)

Mountain Name: Mount Etna
Mountain Name: (ountMa tnaEa)

任何帮助或见解都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2014-03-14 10:26:27

只是重申一下注释所说的(@helderdarocha),只有在<xsl:for-each />标记内,<xsl:value-of />才能工作。

代码语言: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="FamousMountains/mountain" >
            <xsl:value-of select="name[@language='English'] "/>
        </xsl:for-each>
    </xsl:template>

</xsl:stylesheet>

给了

代码语言:javascript
复制
Mount EverestMount RanierMount St. HelensMount WashingtonMount BonnellMount VesuviusMount Etna

这应该足以让你入门了!(但不管怎样,这里有一个答案。)

代码语言: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="/">Put your name here
Famous Mountains of the World<xsl:apply-templates />
    </xsl:template>

    <xsl:template match="mountain">
Mountain Name: <xsl:value-of select="name[@language='English'] "/>
Mountain Name: (<xsl:value-of select="name[@language='PigLatin'] "/>)</xsl:template>

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

https://stackoverflow.com/questions/22394471

复制
相关文章

相似问题

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