XML使いの板
at HP
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