XSLT选择多个项目
问题描述:
我有下面的XML:XSLT选择多个项目
<?xml version="1.0" encoding="UTF-8"?>
<History>
<Release Date="20170927" Version="2">
<Item Type="">Element 2.0</Item>
<Item Type="">Element 2.1</Item>
<Item>Element 2.2</Item>
<Item Type="Remark">REMARK!</Item>
</Release>
<Release Date="20170925" Version="1">
<Item Type="">Element 1.0</Item>
<Item Type="">Element 1.1</Item>
<Item>Element 1.2</Item>
<Item Type="Remark">REMARK!</Item>
</Release>
</History>
有项目,项目类型= “” 和项目类型= “备注”。
我需要在同一列中显示项目和项目类型=“”,但不是项目类型=“备注”。 XML结构给出的,我只能改变以下XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="History/Release/Item[@Type!='Remark']">
<xsl:value-of select="." disable-output-escaping="yes"/><br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
我与此XSLT电流输出是
Element 2.0
Element 2.1
Element 1.0
Element 1.1
其中元2.2和1.2(从单元)缺失。
那么,我该如何解决XSLT以获取元素?
答
使用
<xsl:for-each select="History/Release/Item[@Type!='Remark' or not(@Type)]">
而不是
<xsl:for-each select="History/Release/Item[@Type!='Remark']">
答
下面是条件表达式的XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="History/Release/Item[not(@Type)] | History/Release/Item[@Type!='Remark']">
<xsl:value-of select="." disable-output-escaping="yes"/><br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
+0
不错,谢谢! 我接受了Rupesh答案,因为它更短。 – SchweizerSchoggi
+0
:) np ...我以前没有看到他的回答。谢谢。 – Optional
运行完美 - 感谢你的时间在这! – SchweizerSchoggi