XML使いの板 at HP
[2ch|▼Menu]
290:288
02/02/09 09:15 fxpb/mfd
>>289
自分の勉強もかねて、作ってみた(笑)。

<script type="text/javascript">
function Doc(uri, contentType){
var loaded;
this.isLoaded = function(){ return loaded; };
this.document = document.implementation.createDocument('','',null);
this.document.addEventListener('load', function () { loaded=true; }, false);
this.document.load(uri, contentType);
}
function xslt(xmlNode, xslNode){
var xsltProc = null, out = null;
try { xsltProc = new XSLTProcessor(); } catch (e) { xsltProc = null; }
if ( xsltProc==null ) return;
out = document.implementation.createDocument("", "", null);
xsltProc.transformDocument( xmlNode, xslNode, out, null );
return out;
}
function output(xml, xsl, id){
if ( !xml.isLoaded() && !xsl.isLoaded() ) { return; }
var targetElement = document.getElementById(id);
out = xslt(xml.document.documentElement, xsl.document.documentElement);
if ( !out.documentElement ) { return; }
if ( targetElement.hasChildNodes() )
targetElement.replaceChild( out.documentElement, targetElement.firstChild );
else
targetElement.appendChild( out.documentElement );
}
var xml = new Doc( 'sample.xml', 'text/xml' );
var xsl1 = new Doc( 'style_1.xsl', 'text/xml' );
var xsl2 = new Doc( 'style_2.xsl', 'text/xml' );
var xsl3 = new Doc( 'style_3.xsl', 'text/xml' );
var xsl4 = new Doc( 'style_4.xsl', 'text/xml' );

</script>

<form>
<input type="button" value="Noとタイトル" onClick="output(xml,xsl1,'here')" />
<input type="button" value="日付とNo" onClick="output(xml,xsl2,'here')" />
<input type="button" value="キーと媒体" onClick="output(xml,xsl3,'here')" />
<input type="button" value="媒体と日付" onClick="output(xml,xsl4,'here')" />
</form>

<div id="here"></div>

こんな感じで 279 と大体同じことが Mozilla で可能。
変換結果を Document で受け取るもんで
DocumentFragment の場合は末尾のノードが documentElement になるみたいだ。
漏れが知らんだけかもしれんが。

実際には各 XSLT 文書のネームスペースを
<xsl:stylesheet xmlns="URLリンク(www.w3.org)" xmlns:xsl="URLリンク(www.w3.org)">
と書き直す必要がある。 N6.1 だとダメかも。

日本語で情報提供しているサイトは皆無に等しい。
URLリンク(groups.google.co.jp)
この辺で情報収集するしかないと思う。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5001日前に更新/260 KB
担当:undef