-2

XSLTの小さな問題についてサポートが必要です

私はXMLを持っています:a.xsm

<?xml version="1.0" encoding="UTF-8"?>
<ExtData>
  <table bName="B SERs" id="BSER">
    <Col bName="Bus" id="BUS">
      <CoreCol coreEName="SER" coreHref="../_a2.xml" corebName="Bus" coreId="BUS"/>
    </Col>
    <Col bName="Bus" id="BUS">
      <CoreCol coreEName="MOR" coreHref="../_a5.xml" corebName="Busw" coreId="BUSW"/>
    </Col>
    <Col bName="Ser" id="NAME">
      <CoreCol coreEName="SER" coreHref="../_a2.xml" corebName="Ser" coreId="NAME"/>
    </Col>
    <Col bName="ID" id="ID">
      <CoreCol coreEName="SER" coreHref="../_a2.xml" corebName="SerId" coreId="UCMDB_ID"/>
    </Col>
  </table>
</ExtData>

coreNameによってcoreHrefを返す関数を作成する必要があります。つまり、:: my_variable = same_func( "SER")==>>変数は"../_a2.xml"になります。

助けてくれてありがとう!

4

2 に答える 2

1

coreHrefを選択するためのXPath式は次のとおりです。

//Col/CoreCol[@coreEName='YorName']/data(@coreHref)
于 2013-03-03T16:30:46.240 に答える
0

キーを定義する

<xsl:key name="by-name" match="Col/CoreCol" use="@coreEName"/>

次に、それを使用しkey('by-name', 'SER')/@coreHrefます。

ただし、内部にはxsl:function2つの引数でキー関数を適用するコンテキストノードがないことに注意してください。したがって、内部でアプローチを使用する場合は、xsl:function持っていることを確認してください

<xsl:variable name="main-root" select="/"/>

グローバル変数として、次に使用しますkey('by-name', 'SER', $main-root)/@coreHref

于 2013-03-03T16:54:28.790 に答える