任何人都可以帮我转换使用XSLT的以下XML。
我的XML文件类似于:
<action>
<item
Category ="shop"
Id="1234"
Test="1">
<message>
Some message
</message>
</item>
<item
Category ="rent"
Id="3456"
Actual="1"
Subdivision="333">
<message>
Some shops for rent
</message>
</item>
<item>
</item>
</action>
现在我需要在XSLT中编写代码。如果<message>
是/包含&#34;商店出租&#34;然后我想得到结果/消息&#34;一些消息&#34;。
你能帮我解决这个问题。
答案 0 :(得分:0)
如果某个其他<message>
节点包含文本&#34;商店出租&#34;以下XSLT输出上一个<message>
节点的文本。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="text()" /> <!-- ignores other text content -->
<xsl:template match="action/item/message[contains(text(),'shops for rent')]">
<xsl:value-of select="../preceding-sibling::item[1]/message" />
</xsl:template>
</xsl:stylesheet>
输出
一些消息
如果您真的想要输出xsl:message
,请使用<xsl:value>
围绕<xsl:message>
。