- PR -

IEのデフォルトのツリー表示を変更する

1
投稿者投稿内容
takoashi
会議室デビュー日: 2003/05/14
投稿数: 4
投稿日時: 2004-09-21 13:45
IEでXMLファイルを表示するとツリー表示されますが、
このときに利用するデフォルトのスタイルシートを
変更することはできないのでしょうか?

やりたいことは、
XSLTが指定されいない場合に指定したXSLTを適用させて
XMLを表示させたいのです。

BHOでもオリジナルのブラウザを作成する方法でも構いません。

なにかよい知恵をお貸しください。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-09-21 18:10
XML スタイルシートの適用
の2句で検索
たのしいXML: XMLテキストの書き方
http://www.cityfujisawa.ne.jp/~yanai/xml/classics/step13.html
takoashi
会議室デビュー日: 2003/05/14
投稿数: 4
投稿日時: 2004-09-21 18:40
返信ありがとうございます。

スタイルシートを記述すればいいことはわかっています
しかし、そのスタイルシートをXMLファイルを編集せずに適用させたいです。


JavaScriptのページを別に用意して制御するようなことは今回使えません。

現状は、、、
オリジナルのブラウザのC#で作成し、mshtml.HTMLDocument.body.innerHTMLにXslTransformを利用して変換後のデータを記述してました。
この方法では、外部ファイルのCSSファイルの適用などができずに困っています。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-09-22 00:26
< link rel="stylesheet" type="text/css" href="formate.css">
など
CSS へのリンクを含む、空のHTMLページを表示しておいてから
body に注入できませんか?
http://www.microsoft.com/japan/msdn/academic/Articles/fun/02/
Navigate メソッドは、第一引数に渡した URL の HTML を Web ブラウザコントロールに表示します。Navigate メソッドの構文を次に示します。
===========================
XMLに直接 CSS を適用するのもできます。CSSの効き具合は微妙
--------- R.css
p
{
display:block;
color:cyan;
}
q
{
display:block;
background-color:pink;
}
------------------------ R.xml 呼び出し元
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Z [
<!ELEMENT Z ANY>
<!ENTITY R SYSTEM "R66.xml">
]>

<!-- XMLエディタでは検証エラーになる
(要素が全然、宣言されてないから)
が IE では 開けます。

XInclude はIEでは動かないので 外部エンティティ参照で
xmlを吸い込んで、CSS を当てることになる
(ENTITYリソルバーはまだよくわからない)

このR.xml のENTITY のファイル名を書き換えると
CSSを当てる xmlが切り替わる。

-->
<?xml-stylesheet type="text/css" href="R.css"?>
<Z>&R;</Z>
----------------- R66.xml 呼び出されxml
<?xml version="1.0" encoding="UTF-8"?>
<R66>
<p>
jhdudu
</p>
<q>
資格▲互角
</q>
</R66>

[ メッセージ編集済み 編集者: MMX 編集日時 2004-09-22 10:52 ]
takoashi
会議室デビュー日: 2003/05/14
投稿数: 4
投稿日時: 2004-09-22 11:50
開くXMLデータには次のデータへの相対パスが設定されています。
画像データへのパスもあります。

XSLTを用いて、パスは<a href>で、画像データは<image>で表示させたいのです。
この場合に、空のページを用いて制御すると、
希望のXSLTを記述することができなくなります。

パスに関しては、JavaScriptでなんとかならないとこはないのですが・・・
takoashi
会議室デビュー日: 2003/05/14
投稿数: 4
投稿日時: 2004-09-22 13:04
mshtml.HTMLDocumentを利用しているとき、CSSファイルの適用には、
mshtml.HTMLDocument.createStyleSheetというメソッドを使えばいいということがわかりました。
#このメソッドを見逃してました

IEを細かく制御する方法をもっと知りたいですが、
XMLとは関係のない内容になりそうなのでこのくらいで失礼します。

ENTITYリソルバーはいろいろ面白いことできそうですね。
今後のために勉強しなければ。

今後ともよろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)