xsl - 使用部分字符串对xml进行递归匹配

时间:2013-08-03 11:05:15

标签: xml xslt xml-parsing

我有一个xml,它在无数个节点上使用非常复杂的id名称矩阵。 例如: 060a2b34.01010101.01010f00.13000000.060e2b34.7f7f2a80.519b69a4.8e8600fc

不幸的是,我必须在我的xsl中使用部分名称匹配来有效地实现匹配。

我希望在创建一个包含完整示例xsl代码和输入以及预期XML示例的问题之前,有人可以帮我解决下面的问题。

下面使用完整的字符串:

<xsl:when test="name(.)='personA'"><xsl:value-of select="../../../../../../../../../*[self::CompositionPackage]
                                                            [PackageID=current()
                                                            /personA_ID]
                                                            /PackageName"/></xsl:when>

在这里,我试图仅使用第3行失败的前53个字符来使用子字符串

<xsl:when test="name(.)='personA'"><xsl:value-of select="../../../../../../../../../*[self::CompositionPackage]
                                                            [substring(PackageID,1,53)=current()
                                                            /substring(personA_ID,1,53)]
                                                            /PackageName"/>
                                                            </xsl:when>

任何帮助将不胜感激。 谢谢 阿德里安

1 个答案:

答案 0 :(得分:2)

我认为不是substring(PackageID,1,53)=current()/substring(personA_ID,1,53)而是substring(PackageID,1,53) = substring(current()/personA_ID, 1, 53)