'Select' 2 条信息(XSLT 文件)

'Select' 2 pieces of info (XSLT file)

我正在尝试 link 我们的带有 Sage 50 的 Magento 网站和一个软件。

我们希望客户的名字和姓氏进入公司字段。

以下是我认为必须调整的 3 行:

   <Forename><xsl:value-of select="billing_address/firstname"/></Forename>
    <Surname><xsl:value-of select="billing_address/lastname"/></Surname>
    <Company><xsl:value-of select="billing_address/company"/></Company>

如何在 1 行中合并名字和姓氏?寻找类似的东西:

    <Company><xsl:value-of select="billing_address/firstname, billing_address/lastname"/></Company>

你可以给

    <Company><xsl:value-of select="concat(billing_address/firstname,', ', billing_address/lastname)"/></Company>

试试...

首先,XSLT 引擎会忽略仅包含空白的文本节点,因此您可以像下面这样重写您在上面尝试的内容:

<Company>
   <xsl:value-of select="billing_address/firstname, billing_address/lastname"/>
</Company>

其次,你要明白xsl:value-of生成一个文本节点。以下将生成 2 个文本节点,分别为。名字和姓氏:

<Company>
   <xsl:value-of select="billing_address/firstname"/>
   <xsl:value-of select="billing_address/lastname"/>
</Company>

那么如果我没理解错的话,你想用字符串 ", " 将两者分开。可以使用xsl:text生成固定内容的文本节点:

<Company>
   <xsl:value-of select="billing_address/firstname"/>
   <xsl:text>, </xsl:text>
   <xsl:value-of select="billing_address/lastname"/>
</Company>

在上面,你可以把", "直接放在两个value-of之间,但是这样你就无法控制缩进了。通常,当我生成固定文本时,我总是使用 xsl:text.

您确实需要告诉我们您使用的是哪个版本的 XSLT。您建议的代码

<xsl:value-of select="billing_address/firstname, billing_address/lastname"/>

在2.0就可以了,可以通过添加属性separator=", "/>来得到逗号。但这在 1.0 中不起作用,如果你给它一个序列,xsl:value-of 将只输出第一个项目。