xpath - 具有属性问题的谓词

时间:2017-06-08 10:10:19

标签: xml xslt xpath

我有一个值,我试图减少4个字符,它包含在属性为WEIGHT的xml子元素中。

$('#thumbnail-view img').attr('src','path/to/photo');

完整路径为gcloud

我的模板说:

gcloud

应该将值0.04700修剪为总共4个字符(0.47)。相反,它正在这样做,但也消除了类型属性“WEIGHT”。

转换输出:

gcloud init

1 个答案:

答案 0 :(得分:2)

它正在执行您要求它执行的操作:创建具有相同名称的元素,并将修剪后的值放入其中。要在结果中包含type属性,您可以复制它:

<xsl:template match="documents/invoice/detailline/addinfo/info[@type='WEIGHT']">
  <xsl:element name="{name()}" namespace="{namespace-uri()}">
    <xsl:copy-of select="@*" />
    <xsl:value-of select="substring(., 1, 4)" />
  </xsl:element>
</xsl:template>

仅供参考,substring()(以及XPath中的大多数其他内容)中的编号从1开始,第二个和第三个参数是数字,而不是字符串。我已经解决了上述问题。