0

我是 XSLT 的新手,所以请耐心等待。

我编写了一个简单的模板,用于从 XML 文件中获取值并以简单的文本格式显示它们。

我在这里有这行有效:

"Supplier Invoice Payments Descriptor: <xsl:value-of select="wd:Supplier_Invoice_Payments/wd:Supplier_Invoice_Payments/@wd:Descriptor"/>"

描述符是这样的属性: <Suppplier_Invoice_Payments Descriptor="blahblahblah">

我想使用变量获取 blahblahblah 文本部分,如下所示:

<xsl:variable name="suppInvoiceDesc" select="wd:Supplier_Invoice_Payments/wd:Supplier_Invoice_Payments/@wd:Descriptor" />
<xsl:value-of select="substring-after($suppInvoiceDesc,':')" />

这抓住了我想要的文本部分。

现在我的问题是,我可以在一行中完成所有这些吗?

我将添加填充,以便所有文本字段都具有一定的宽度,并且我想避免为每个字段创建一个变量,然后单独执行子字符串。

4

1 回答 1

1

当然,只需将变量引用替换为用于计算变量的表达式,必要时使用括号。所以

<xsl:variable name="suppInvoiceDesc" select="wd:Supplier_Invoice_Payments/wd:Supplier_Invoice_Payments/@wd:Descriptor" />
<xsl:value-of select="substring-after($suppInvoiceDesc,':')" />

变成

<xsl:value-of select="substring-after(wd:Supplier_Invoice_Payments/wd:Supplier_Invoice_Payments/@wd:Descriptor,':')" />

唯一不能玩这个技巧的情况是上下文发生变化,例如变量引用是否在谓词中。

于 2013-10-19T09:03:02.863 回答