我有带节点的
的xml文件<air:AirAvailInfo ProviderCode="1G">
<air:BookingCodeInfo BookingCounts="C4|Z4|I4|D4|Y4|W4|Q4|E4|G4|T4|N4|B4|X4|U4|O4|V4|H4|L4|K4"/>
</air:AirAvailInfo>
这是xslt 1.0中的代码。 如何只更改节点中的一个扇区?我怎么能在结果中这样做?
<info>
<code>H</code>
<status>4</status>
</info>
谢谢!
答案 0 :(得分:0)
我的回答如下:
BookingCounts中列表的所有元素都是由LETTER和NUMBER的串联组成的。数字的长度始终为1.
列表中的所有元素都是唯一的,其中唯一关系仅由字母的唯一性定义。所以我们在同一个列表中找不到元素H2 H5。
OP只需要检索列表中的H元素。
遵循这些假设的解决方案可能是:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:air="http://airnamespace.com" version="1.0">
<xsl:output method="xml" indent="yes"/>
<!-- Match the attribute BookingCounts inside air:BookingCodeInfo -->
<xsl:template match="air:BookingCodeInfo">
<info>
<code>H</code>
<status><xsl:value-of select="substring(substring-after(@BookingCounts, 'H'), 1, 1)" /></status>
</info>
</xsl:template>
</xsl:stylesheet>
如果其中一些假设不正确,请告诉我,我将更改代码。