XSLT横向转换
我不知道如何解决这个问题,因为我对XSLT还很陌生 我正在使用XSLT横向转换,xslt,Xslt,我不知道如何解决这个问题,因为我对XSLT还很陌生 我正在使用xsl:for each在类型中循环,这很好,但是当我在该循环(类型)中时,如何使用TypeCode中的属性选择Rate?我是否认为select只对我当时所处的每个项目具有范围?也可能有很多包元素 <Bags> <Bag> <Types> <Type TypeCode="DBL"> <Description Name="BLAH"&g
xsl:for each
在类型中循环,这很好,但是当我在该循环(类型)中时,如何使用TypeCode
中的属性选择Rate
?我是否认为select只对我当时所处的每个项目具有范围?也可能有很多包元素
<Bags>
<Bag>
<Types>
<Type TypeCode="DBL">
<Description Name="BLAH">
<Text>BLAH</Text>
<Image/>
</Description>
</Type>
<Type TypeCode="JRS">
<Description Name="BLAH">
<Text>BLAH BLAH</Text>
<Image/>
</Description>
</Type>
</Types>
<Plans>
<Plan PlanCode="DISC" PlanName="Best rate">
<Description Name="Best rate">
<Text>Best available rate</Text>
</Description>
</Plan>
<Plan PlanCode="NOCC" PlanName="No CC Required">
<Description Name="No CC Required">
<Text>Rate- No CC Required</Text>
</Description>
</Plan>
</Plans>
<Rates>
<Rate TypeCode="DBL" PlanCode="DISC">
<Rates>
<Rate>
<Base AmountBeforeTax="0" CurrencyCode="EUR"/>
</Rate>
</Rates>
</Rate>
<Rate TypeCode="JRS" PlanCode="DISC">
<Rates>
<Rate>
<Base AmountBeforeTax="0" CurrencyCode="EUR"/>
</Rate>
</Rates>
</Rate>
</Rates>
</Bag>
</Bags>
废话
废话
最佳可用率
费率-无需CC
我认为select只包含for each的范围,对吗
我当时在吗
不是真正的,XPath表达式可以是相对的,在这种情况下,它是在当前节点之外计算的;或者是绝对的(从/
开始),在这种情况下,它是在当前文档节点之外计算的
即使使用相对XPath表达式,也可以选择当前节点所在子树之外的节点——只需使用反向轴或后续::
或后续同级::
轴即可
使用:
ancestor::Bag/Rates/Rate[@TypeCode = current()/@TypeCode]
这假设行李不能嵌套,否则需要使用稍微不同的表达式:
ancestor::Bag[1]/Rates/Rate[@TypeCode = current()/@TypeCode]
为快速反应干杯,appreciated@DazzlaJ当前位置我很高兴这个答案对你有用。请您接受它(通过在答案旁边的复选标记上单击“开”)好吗?我只想说,随着时间的推移,我注意到Dimitre确实“得到”了这个XSLT内容:),并提供了很好的答案。检查他的答案列表!对不起,迪米特里,我只是习惯了堆叠溢出。再次感谢你的帮助。@DazzlaJ:没问题,你很好。:)