0

エンジンなしでxslt1.0を使用してIEブラウザーで直接xmlを表示したい。ソースxmlからコードを取得でき、voc.xmlという名前の外部xmlからこのコードに対応する表示名を取得したい。これらの手順に従って表示名を取得できませんでした1.xslでドキュメント変数を定義します

<xsl:variable name="voc" select="document('voc.xml')"/>

2.自分のxpathに従ってコードを取得すると、変数'paytypecode'='01'の値を取得できます
。3。voc.xmlで対応するコードを検索します。

<xsl:variable name='mappedpaytypecode' select="$voc//systems/system[@root='CV07.10.003医疗费用来源类别代码表']/code[@value='01']"/> 

4.voc.xmlでこの対応するコードのdisplayNameを取得します

<xsl:variable name='displayName_value' select="$mappedpaytypecode/@displayname"/>  

そしてvoc.xmlはこのようなものです

<systems>
    <system codeSystemName="CV07.10.003医疗费用来源类别代码表" root="CV07.10.003医疗费用来源类别代码表">
       <code value="01" displayname="城镇职工基本医疗保险" />
       <code value="02" displayname="城镇居民基本医疗保险" />
       <code value="03" displayname="新型农村合作医疗" />
       <code value="04" displayname="贫困救助" />
       <code value="05" displayname="商业医疗保险" />
       <code value="06" displayname="全公费" />
       <code value="07" displayname="全自费" />
       <code value="99" displayname="其他" />      
  </system> 
</systems>
4

1 に答える 1

0

ここには 3 つの問題があります。

  1. サンプル入力ドキュメントの形式が正しくありません。<systems> 要素の終了タグを調べてください。
  2. XPath では大文字と小文字が区別されます。$displayName_value 変数の選択式ではキャメル ケース ('@displayName') を使用しましたが、入力ドキュメントでは小文字 ('@displayname') を使用しました。
  3. テストしているブラウザの範囲については言及していません。FF(デスクトップ)かIEなら大丈夫です。Google Chrome (デスクトップ) では、ローカル システムの XSLT が許可されないことに注意してください。これは仕様によるものです。モバイル ブラウザーがクライアント側の XSLT をサポートしているかどうかはわかりません。

IE ブラウザ

node-set() 関数を使用することを忘れないでください。参考文献:

  1. http://msdn.microsoft.com/en-us/library/hz88kef0.aspx
  2. http://dpcarlisle.blogspot.com.au/2007/05/exslt-node-set-function.html
  3. プラットフォームに依存しない方法でノードセット関数を使用する方法は?
于 2012-08-13T08:18:49.427 に答える