如何获取value属性的内容并在XSLT中拆分它们(如果它们是字符串列表)



我有一个xml数据节点:

<data field="field_value" value="["value1", "value2"]">
Evacuate - Relocate as instructed in the instruction, Prepare - Make preparations per the                  instruction
</data>

我想获得值属性(value1和value2)的内容,并将它们分割成这样的节点:

<fieldValue>value1</fieldValue>
<fieldValue>value2</fieldValue>

现在我正试着这样做:

<xsl:if test="data[@field='field_value']">
    <xsl:call-template name="split-into-nodes">
        <xsl:with-param name="string"><xsl:value-of  select="data[@field='field_value']/@value"/>
        </xsl:with-param>
        <xsl:with-param name="node-name">fieldValue</xsl:with-param>
    </xsl:call-template>
</xsl:if>

但是我得到的结果有点奇怪:

<fieldValue>["value1"</fieldValue>
<fieldValue>"value2"]</fieldValue>

请帮…提前感谢!!

您的源代码不是格式良好的XML,将无法被解析。

可能你的文件的实际内容是:

<data field="field_value" value="[&quot;value1&quot;, &quot;value2&quot;]">
    Evacuate - Relocate as instructed in the instruction, Prepare - Make preparations per the instruction
</data>

其中可解析的并且在打印时具有相同的外观。

如果是这种情况,您可以使用translate()剥离&quot;字符和方括号[],通过将代码更改为:

<xsl:with-param name="string">
    <xsl:value-of  select="translate(data[@field='field_value']/@value, '&quot;][', '')"/>
</xsl:with-param>

相关内容

  • 没有找到相关文章

最新更新