AIR プロジェクトで xslt ファイルを使用して xml 変換を実行できるようにしたいと考えています。これを達成するための最良の方法は何ですか?
Abdullah Jibaly
質問する
2684 次
2 に答える
3
AIR 1.5 には、XSLT をサポートするバージョンの Webkit が含まれています。
XSLTProcessor
Firefox の場合と同じように、JavaScriptのクラスを使用します。(注: 厄介なバグが 1 つあります。スタイルシートには、文字参照であろうと文字参照であろうと、非改行スペースを含めることはできません。より最近のバージョンの Webkit でこの問題が修正されると聞いています。)
以下は完全な例です。
ファイルを作成するtest.html
<html>
<head>
<title>XSLT test</title>
<script type="text/javascript">
// <!--
function test() {
// Step 1: Parse the stylesheet
var stylesheet
= "<xsl:transform xmlns:xsl='http://www.w3.org/1999/XSL/Transform'"
+ " version='1.0'>"
+ " <xsl:template match='/'>"
+ " Hello World from XSLT!"
+ " </xsl:template>"
+ "</xsl:transform>";
var stylesheetDocument
= new DOMParser().parseFromString(stylesheet, "application/xml");
// Step 2: Parse the source document
var source = "<dummy/>";
var sourceDocument
= new DOMParser().parseFromString(source, "application/xml");
// Step 3: Perform the XSL transformation
var xslt = new XSLTProcessor();
xslt.importStylesheet(stylesheetDocument);
var newFragment = xslt.transformToFragment(sourceDocument, document);
// Step 4: Show the result
document.body.appendChild(newFragment.firstChild);
}
// -->
</script>
</head>
<body>
<input type="submit" onclick="test()">
Output:
</body>
</html>
とファイルtest.xml
<application xmlns="http://ns.adobe.com/air/application/1.0">
<id>test</id>
<filename>test</filename>
<initialWindow>
<content>test.html</content>
<visible>true</visible>
</initialWindow>
</application>
たとえば、デバッグ ランタイムを使用して試すことができます。
adl test.xml
ボタンをクリックすると、次のように表示されます。
(出典:lichteblau.com)
于 2009-02-24T12:59:13.537 に答える
1
XSLT サポートは通常、ブラウザーによって提供されます。AIR に組み込まれている Webkit のバージョンは、XSLT をサポートしていません。したがって、これをすべて自分で行う必要があります。AS3 で XPath クエリをいじることができるこのプロジェクトを見つけました。テンプレートの解析とノードの作成は、自分で行う必要があります。
于 2009-02-22T05:29:25.957 に答える