Variables 如何使用变量选择路径?
我尝试用这种方法在其他文档上选择一个值,但它不起作用。我没有正确的道路。有什么问题吗Variables 如何使用变量选择路径?,variables,xslt,xpath,Variables,Xslt,Xpath,我尝试用这种方法在其他文档上选择一个值,但它不起作用。我没有正确的道路。有什么问题吗 <xsl:template match="//element[@type='champ']/propriete[2]/text()"> <xsl:variable name="chemin_data" select="." /> <xsl:value-of select="document('data_rapport.xml')/$chemin_data"/&g
<xsl:template match="//element[@type='champ']/propriete[2]/text()">
<xsl:variable name="chemin_data" select="." />
<xsl:value-of select="document('data_rapport.xml')/$chemin_data"/>
</xsl:template>
data_report.xml
<data>
<client>value </client>
<renseignement>
<projet> value </projet>
<utilisateur> value <utilisateur>
</renseignement>
</data>
<?xml version="1.0" encoding="UTF-8"?>
<data>
<client>clientValue </client>
<renseignement>
<projet> value </projet>
<utilisateur> value </utilisateur>
</renseignement>
</data>
价值
价值
价值
$chemin_data
包含类似“data/client
”的路径
对于每一个
champ/propriete[2]
我都试图获得好的价值。我不认为使用变量来构造XPath是您想要走的路。您可以像访问节点一样访问documet()中的节点
XML数据_report.XML
<data>
<client>value </client>
<renseignement>
<projet> value </projet>
<utilisateur> value <utilisateur>
</renseignement>
</data>
<?xml version="1.0" encoding="UTF-8"?>
<data>
<client>clientValue </client>
<renseignement>
<projet> value </projet>
<utilisateur> value </utilisateur>
</renseignement>
</data>
客户价值
价值
价值
XSL
输出
<?xml version="1.0" encoding="utf-8"?>clientValue
clientValue
使用动态XPath需要EXSLT-dynamic
此解决方案需要记住以下几点:
- 它要求XSLT处理器支持EXSLT-Dynamic(请参阅文档)
- 必须将动态xpath编写为字符串,否则就已经创建了节点集
- 我在文档中使用了另一个变量,因为创建动态XPath需要字符串连接
- 当然,您应该尽量避免这种情况,因为它非常脆弱,会降低性能,所以只有在真正必要时才使用它
document('data\u report.xml')/$chemin\u data
没有任何意义。$chemin\u data包含一个类似于“data/client”的路径,用于每个champ/propriete[2]我试图获得好的值,但这行不通,因为$chemin_data
包含整个上下文而不是部分上下文。为什么要使用变量来尝试构造XPath?我不明白,因为当我尝试这样做时:它是work@MarcusRickert