マイスウィフトアプリケーションは、それがその後、XSLTを使用して変換したXMLDocument、生成します。私のXSLTスタイルシート(xsltString
)でSwiftでEXSLTまたはXSL 2を使用してXMLDocumentを処理する方法は?
xmlDocument.object(byApplyingXSLTString: xsltString, arguments: nil)
を、私は、XPathを使用して結果ツリーフラグメントにアクセスしたいと思います。これはXSLT 1.0ではサポートされていません。私はXSLT 2.0を使ってみましたが、それはSwiftによってサポートされていないようです。 xsl:stylesheet
要素でversion="2.0"
を指定すると、このエラーが発生します。
xsl:version: only 1.0 features are supported
私はEXSLTからnode-set
を使用することができると思います。私はこれに慣れていませんが、EXSLTに関する情報をxsl:stylesheet
要素に追加しようとしました。
xmlXPathCompOpEval: function node-set not found
XPath error : Unregistered function
それは私の状況でXSL 2.0またはEXSLTを使用することが可能であり、そしてどのように:私は次のエラーを取得
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
extension-element-prefixes="exsl"
version="1.0">
:これは効果がないように見えますか?
は私たちにあなたが試してみましたが、最低限の完全なサンプルを表示するように考えてみましょう。 XSLT 1.0プロセッサが、独自の名前空間で 'exsl:node-set'または同様の機能をサポートしていないことは、まれです。どのXSLTプロセッサーSwiftが使用されているかを調べ、結果のツリーフラグメントをノードセットに変換する方法があることを願っています。 –
http://xsltransform.net/3NSSEvFのスタイルシートのような簡単なテストケースをプロセッサに実行してみてください。 –
ありがとうございます。リンクしたスタイルシートを使って、私はSwiftがlibxsltを使っているのを見ました。しかし、私はさらに進めませんでした。私は 'node-set'に' libxslt: '、' xt: 'と' saxon: 'と接頭辞をつけてみました。[here](http://xmlsoft.org/XSLT) /html/libxslt-extra.html#xsltFunctionNodeSet)でも、常に同じエラーが発生します: 'xmlXPathCompOpEval:function node-set not found'。 –