どうやって使うことができまXPath表現の"文書")"。純XsltCompiledTransform?べていただきます。
質問
私の努力が払われてきたが、現在、webサイトまで送信下XML+XSLTお客様を支えて下さっている保存に広帯域です。ただし、クライアントに対応しておりませんでていることからこのような変換サーバ側では、送信の結果はHTML.
私のXSLTので、そういった使用、XPathのように:
document('')//xsl:variable[@name='test']
(返しますノードでも通知非通知を設定できます。この作品は大FirefoxやIEなどのXsltCompiledTransform-ようにした
この操作はサポートしていません、相対URIです。
そのようなエラーが発生するXmlUrlResolver-Iのなかに石えびが入って通過できるカスタムその一つが、そんな私がすべきます。ンが任意のヒントとしてどのようにいただく場合がございこの表現です。嬉しいものを使MSXSL拡張必要な場合のコードだけが見られるサーバ側では。
より一般のノートでは普通なこのようなXPathク?私に陥るもの巨大なXSLTトラップ私が知らない。でいう遅いwebブラウザを停止?
解決
開始の変換を適切に構築インスタンス XsltSettings, この文書を機能させ.
以下に例を示します。
// Create the XsltSettings object with the document fn allowed.
XsltSettings settings = new XsltSettings(true,false);
// Create the XslCompiledTransform object and load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("sort.xsl", settings, new XmlUrlResolver());
他の質問:
より一般のノートで共通 こうしたXPathク?私 に陥るもの巨大なXSLTトラップん 知らない。でも一緒に戦ってくれるかなという もう遅いwebブラウザ 下には下げ止?
の落とし穴があることを、XSLTスタイルシートの再解析され、これは比較的オペレーションです。
りに関するご使用の //
略称はほとんどだが性能です。
こちらの方がよく利用トリックのみgloball変数を使用してこの表現は:
document('')/*/xsl:variable[@name='test']
たさない場合は関係な携帯性とXSLT1.0プロセッサでは、より効率的な利用 xxx:node-set()
実装依存の拡張機能変換のRTFに変数を正規のノード-セットです。ここでは、この利用 exslt:node-set()
のXSLTプロセッサを実装すEXSLT.このものを実現し、比較的大きな程度のポータビリティ、多くのXSLTプロセッサを含むXslCompiledTransform支援 exslt:node-set()
.
他のヒント
私は(「」)私は、ドキュメントを使用することができます解決策を見つけるために管理していないが、私はそれを使用していますすべてのノードセットに評価する変数を取得することであるから、私が調整しています変化に、サーバー側で処理する前にXMLます:
document('')//xsl:variable[@name='test']
と
msxsl:node-set($test)
未まさに最も優雅な解決策が、それは私の目的のために働きます。
は、使用して試してみました。
document('')//xsl:variable[@name='test']
?即ちdocument()
に、代わりに引数を渡していないの引数として長さゼロの文字列を使用します。 のrel="nofollow">によると、document()
は、少なくとも一つの引数を持っている必要があります。私はFirefoxとIEはそれについて緩いです驚いています。 XsltCompiledTransformは不幸である理由しかし、それは説明することができます。
は一方、XsltCompiledTransformが相対URIをサポートしない場合、その後''
はない仕事(それは相対URIを考えている)ことができます。変換コンパイルだから、それはスタイルシートのツリー表現へのアクセスを提供するために便利ではない可能性があります。 「アンXSLTプロセッサは、任意の特定のURIスキームをサポートするために必要とされない。XSLTプロセッサのドキュメントがどのURIスキームXSLTプロセッササポートを指定してください。」