Xml 一个值如何绑定到另一个绑定的节点以获取该节点内的文本
1我有一个XML和XSLT文件,我希望XSLT自动从同一个XML文件中的另一个节点获取值 XSLT第68行我知道不应该这样写,但我真的不知道如何将值传递给键('Description2-by-id', 谢谢 XML数据Xml 一个值如何绑定到另一个绑定的节点以获取该节点内的文本,xml,xslt,Xml,Xslt,1我有一个XML和XSLT文件,我希望XSLT自动从同一个XML文件中的另一个节点获取值 XSLT第68行我知道不应该这样写,但我真的不知道如何将值传递给键('Description2-by-id', 谢谢 XML数据 <DATA> <CountryList> <CountryName code="AA" name="Antarctica" IsT="True"/> <CountryName code="AB" n
<DATA>
<CountryList>
<CountryName code="AA" name="Antarctica" IsT="True"/>
<CountryName code="AB" name="Abkhazia" IsT="False"/>
</CountryList>
<Description1List>
<Description1Name Description1Id="1" RecordType="Person">P1</Description1Name>
<Description1Name Description1Id="2" RecordType="Person">P2</Description1Name>
<Description1Name Description1Id="1" RecordType="Entity">E1</Description1Name>
</Description1List>
<Description2List>
<Description2Name Description2Id="1" Description1Id="2">P21</Description2Name>
<Description2Name Description2Id="2" Description1Id="2">P22</Description2Name>
<Description2Name Description2Id="3" Description1Id="3">E11</Description2Name>
</Description2List>
<Description3List>
<Description3Name Description3Id="1" Description2Id="1">P211</Description3Name>
<Description3Name Description3Id="2" Description2Id="3">E111</Description3Name>
</Description3List>
<ReferencesList>
<ReferenceName code="9811" name="National List" Description2Id="1"/>
</ReferencesList>
<Records>
<Person id="752" date="15-Oct-2013">
<Country CountryType="BB">
<CountryValue>AA</CountryValue>
</Country>
<Descriptions>
<Description Description1="1" Description2="2" Description3="1"/>
<Description Description1="2"/>
</Descriptions>
<References>
<Reference>9811</Reference>
</References>
</Person>
<Entity id="758" date="15-Oct-2013">
<Country CountryType="BC">
<CountryValue>AB</CountryValue>
</Country>
<Descriptions>
<Description Description1="1" Description2="3" Description3="2"/>
<Description Description1="3"/>
</Descriptions>
</Entity>
</Records>
</DATA>
我所期望的结果是
|ID |Date |Country |Description1 |Description2 |Description3 |Reference |ReferenceName |ReferenceDescription2code |ReferenceDescription2|
|752 |15-Oct-2013 |[BB] Antarctica [True] |P1 |P22 |P211 |9811 |National List |1 | |
|752 |15-Oct-2013 |[BB] Antarctica [True] |P2 | | |9811 |National List |1 | |
|758 |15-Oct-2013 |[BC] Abkhazia [False] |E1 |E11 |E111 | | | | |
|758 |15-Oct-2013 |[BC] Abkhazia [False] | | | | | | | |
|ID |Date |Country |Description1 |Description2 |Description3 |Reference |ReferenceName |ReferenceDescription2code |ReferenceDescription2|
|752 |15-Oct-2013 |[BB] Antarctica [True] |P1 |P22 |P211 |9811 |National List |1 |P21 |
|752 |15-Oct-2013 |[BB] Antarctica [True] |P2 | | |9811 |National List |1 |P21 |
|758 |15-Oct-2013 |[BC] Abkhazia [False] |E1 |E11 |E111 | | | | |
|758 |15-Oct-2013 |[BC] Abkhazia [False] | | | | | | | |
又来了
我担心这个例子不够清楚(太多类似的值),也没有解释逻辑(!),所以这只是一个猜测:
<td>
<xsl:value-of select="key('Description2-by-id', key('Reference-by-code', $varReference)/@Description2Id)"/>
</td>
这样做的目的是(1)从匹配的
ReferenceName
中获取@Description2Id
值,以及(2)使用它通过'Description2By-id'
键获取Description2Name
值。是的,同样,这是一个巨大的xml xsd,大约120kb,数据约为1.5gb,我只能简化数据,并列出我的问题,是的,你的猜测是正确的。这正是我想要的,非常感谢
<td>
<xsl:value-of select="key('Description2-by-id', key('Reference-by-code', $varReference)/@Description2Id)"/>
</td>