如何使用XSL转换和XML通过属性值访问元素?
我试图使用XSL转换将XML文档转换为XHTML,我想知道如何根据XML元素的属性值选择它。e、 g如何使用XSL转换和XML通过属性值访问元素?,xml,xslt,xhtml,Xml,Xslt,Xhtml,我试图使用XSL转换将XML文档转换为XHTML,我想知道如何根据XML元素的属性值选择它。e、 g <image size="small">http:example.small.jpg</image> <image size="medium">http:example.medium.jpg</image> <image size="large">http:example.largw.jpg</image> http:ex
<image size="small">http:example.small.jpg</image>
<image size="medium">http:example.medium.jpg</image>
<image size="large">http:example.largw.jpg</image>
http:example.small.jpg
http:example.medium.jpg
http:example.largw.jpg
我只想从image标记中访问值“http:example.medium.jpg”,其中size=“medium”
非常感谢您的帮助
Ally此XPath表达式将获得所需的结果:
//image[@size='medium']
这是一个非常基本的XPath问题。我建议您阅读W3C学校的一些示例,因为XPath是一个非常有表现力和有用的工具
要在XSL样式表中使用它,您可能需要从以下内容开始:
<xsl:template match="/">
<xsl:value-of select="//image[@size='medium']"/>
</xsl:template>
同样,这是非常基本的XSL,所以如果你想了解更多,我建议你看看W3C学校的。当我需要查找我可能忘记的事情的详细信息时,我会去那里。
<xsl:value-of select="image[@size='medium']" />
这是一个expath查询-具体的查询方式取决于xslt的结构,但鉴于上述情况,调用模板的方式如下所示:
<xsl:apply-templates select="image[@size = 'medium']" />
只需选择值,erm:
<xsl:value-of select="image[@size = 'medium']" />
这两种情况下的关键是“where”,即方括号中的位。为了给出更好的答案,我希望看到更多的XML和XSLT,以澄清这三个答案中的XPath表达式
<xsl:template match="/">
<xsl:value-of select="//image[@size='medium']"/>
</xsl:template>
(@Welbog)将找到文档中size=“medium”的每个图像元素
(@Murph和@carillonator)仅当图像元素是当前元素的直接子元素时才会返回该元素。因为您没有指定XML的结构,所以在计算此表达式时应该小心。只想指出,W3学校与官方标准机构W3C没有关联。有关XSLT和相关主题的最新、维护良好的信息,我建议任何人都应该访问Microsoft的网站:
<xsl:value-of select="image[@size = 'medium']" />