我有这样的XML:
<PurchaseOrder>
<ID>1</ID>
<PurchaseOrderLine>
<DATA>100<DATA>
</PurchaseOrderLine>
<PurchaseOrderLine>
<DATA>200<DATA>
</PurchaseOrderLine>
<PurchaseOrderLine>
<DATA>300<DATA>
</PurchaseOrderLine>
</PurchaseOrder>
<PurchaseOrder>
<ID>2</ID>
<PurchaseOrderLine>
<DATA>100<DATA>
</PurchaseOrderLine>
<PurchaseOrderLine>
<DATA>200<DATA>
</PurchaseOrderLine>
<PurchaseOrderLine>
<DATA>300<DATA>
</PurchaseOrderLine>
</PurchaseOrder>
<PurchaseOrder>
<ID>3</ID>
<PurchaseOrderLine>
<DATA>100<DATA>
</PurchaseOrderLine>
<PurchaseOrderLine>
<DATA>200<DATA>
</PurchaseOrderLine>
<PurchaseOrderLine>
<DATA>300<DATA>
</PurchaseOrderLine>
</PurchaseOrder>
Run Code Online (Sandbox Code Playgroud)
和XSL:
<xsl:template match="PurchaseOrder">
<xsl:apply-templates select="PurchaseOrderLine"/>
</xsl:template>
<xsl:template match="PurchaseOrderLine">
<!-- I want to get the PurchaseOrder\ID here for the current PurchaseOrder -->
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
如何在PurchaseOrderLine中获取当前父元素值(PurchaseOrder\ID)?
rai*_*bba 11
如果您希望模板是原子的(隔离且可重用),则应该以这种方式引用父节点.相反,在调用模板时,传入您希望能够使用的引用.这样,您可以将此模板用于相同类型的节点,即使它具有不同的上下文/父节点(只要您仍然可以加载参数).
<xsl:template match="PurchaseOrder">
<xsl:apply-templates select="PurchaseOrderLine">
<xsl:with-param name="PurchaseOrder" select="."/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="PurchaseOrderLine">
<xsl:param name="PurchaseOrder"/>
<!-- I want to get the PurchaseOrder\ID here for the current PurchaseOrder -->
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
现在,在PurchaseOrderLine模板中,您可以引用$ PurchaseOrder变量.
您似乎跳过了有关 XPath 的一些基本阅读。
<xsl:template match="PurchaseOrderLine">
<xsl:value-of select="../ID" />
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28031 次 |
| 最近记录: |