两个不同的xmls和一个xsl模板

时间:2014-10-22 20:14:29

标签: xml xslt

我有两个使用一个xsl的xml文件 只有这些xml文件的区别在于,第一个文件具有<Valuation>元素,第二个xml具有<NadaDualValuation>和子<mar:Valuation>元素

我想在<AICOption>元素中获取数据,有多个ComparableVehicleRecord。

所以对于第一个xml我有

<xsl:for-each select="/df:ValuationReport/df:Valuation/mar:CVDBValuationData/mar:ComparableVehicleRecord[$ComparableNo]/typ2:AICOption">

我是XSLT的新手,请建议我如何让同样的线路也能用于第二个xml。 感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

我猜你想要的东西是:

<xsl:for-each select="
df:ValuationReport/df:Valuation/mar:CVDBValuationData/mar:ComparableVehicleRecord/typ2:AICOption | df:ValuationReport/df:NADADualValuation/mar:Valuation/mar:CVDBValuationData/mar:ComparableVehicleRecord/typ2:AICOption">

答案 1 :(得分:0)

如果您需要所有AICOption元素而不管其祖先上下文,

<xsl:for-each select="//typ2:AICOption">

将抽象出上下文差异并为两个文件工作。

如果您需要某些上下文,您仍然可以在上下文重要的点之上使用//

<xsl:for-each select="//mar:ComparableVehicleRecord[$ComparableNo]/typ2:AICOption">

一般的想法是//在所有后代(和自己)中进行选择,因此您可以在重要的上下文之上使用它,以便您的XPath可以与您的两个文件一起使用。