<XML総合 part="3"/>

■ このスレッドは過去ログ倉庫に格納されています
2008/10/07(火) 17:40:09
XMLなんでもスレ。

前スレ: 【XML】xmlns, XSLT, RelaxNG, JAXP, etc.【総合】
 http://pc11.2ch.net/test/read.cgi/tech/1133280488/
前々スレ: 【必須?】XML技術【使ってる?】
 http://pc8.2ch.net/test/read.cgi/tech/1090253584/
2008/12/04(木) 19:57:35
鬼才現る
96デフォルトの名無しさん
垢版 |
2008/12/04(木) 20:59:50
>>94
できなかったです+_+
2008/12/04(木) 22:07:50
 
【サンタクロース、トナカイの酒気帯び運用で逮捕。有罪判決に、マジ逆切れ&大暴れw(動画有り)】(ZDNet)
http://builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_03_400x300.jpg
http://builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_01_400x300.jpg
http://builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_02_400x300.jpg
2008/12/08(月) 16:04:44
hoge要素に対するhoe要素、hogehoge要素に対するhoehoe要素が
別のXML文書(hoe.xml)内にあるものとして、
そこへそれぞれにリンクを設定する必要がある時、

<root>
<hoge xml:base="hoe.xml#xpointer(hoe[1])">
<hogehoge xlink:href="#xpointer(hoe[1]/hoehoe[1])" />
</hoge>
</root>

"hoe[1]"を2回書くの嫌なんですが、こう書かなきゃだめ?
xml:baseはXPath部分は含んでくれない?
2008/12/19(金) 07:35:14
画像処理の実験データを記録するのに、勉強がてらxmlを使うことにしたのですが
例えば、目標位置を記録する場合の要素Targetがあったとして

例@
<Target num="0" x="315" y="292">

例A
<Target>
 <Num>0</Num>
 <X>315</X>
 <Y>292</Y>
</Target>

この二通りを考えたとき、どちらの書き方が『正しい』と言えるのでしょうか。
自分はどちらでもいいのではと思っており、例@を採用していたのですが、報告会で先輩から
「そういう属性だけの要素が存在してもいいの?」や「そういうのを書くとき、一般的な決まりごととか無いの?」などの
質問を受けました。考えたことも無かったので調べてはみたのですが
これといった答えが見つからず、質問に参った次第です。

好みの問題なのでしょうか。それとも、何か決まりごとのようなものがあるのでしょうか。
参考になるwebサイトなどでも構いません。知っている方がおりましたら、どうかご教授ください。
2008/12/19(金) 08:00:22
ないからどういう風に書くかスキーマを書いて決める。
2008/12/19(金) 08:03:10
特に num や x が二つ以上あれば属性ではなく要素を選択するしかないけど、
構造体やハッシュ/辞書みたいなデータ構造を XML に落とす場合は
どっちでもいいと思うよ

ちなみに XML Hacks って本が言うには
要素にするか属性にするかは論争の種ではあるけれど
相互変換が可能なのでお好みでどうぞというのが結論だった気がする
2008/12/19(金) 08:33:30
num や x が2つ以上あっても例えば空白区切りで書けるけど。
2008/12/19(金) 08:48:40
>>102
例えばどんな感じ?よかったら教えて

あと前掲書からのリンク貼っとくね
http://xml.coverpages.org/elementsAndAttrs.html
http://xml.silmaril.ie/developers/attributes/
http://www.ibm.com/developerworks/xml/library/x-eleatt.html
2008/12/19(金) 11:01:45
属性にできるなら属性にしたほうがコードは書き易い印象がある。
2008/12/19(金) 15:17:13
>>104
DOMにしてもSAXにしても確かに属性にした方が楽ですね。
2008/12/20(土) 00:33:05
>>103
<svg:path d="M 0 0 L 0 100 100 100 100 0 0 0" />
2008/12/20(土) 03:37:06
>>99
「XML 要素 属性 使い分け」でググるといくつか出てくるから参考にするとよろし
108デフォルトの名無しさん
垢版 |
2008/12/25(木) 02:19:56
xsltで質問です。

xmlをxslでhtmlにしたいのですが、
できるhtmlに文書型宣言を入れることはできるのでしょうか。

よろしくお願いします。
2008/12/25(木) 02:23:54
>>108
omit-xml-declaration を no にして doctype-public, doctype-system を指定。
110デフォルトの名無しさん
垢版 |
2008/12/25(木) 02:37:16
>>109
xml:outputのところですよね。
うまくいきました。

どうもありがとうございます!
2008/12/27(土) 14:29:33
自分のホームページの資料的コンテンツのところをXML&XSLTにしようと思って勉強しはじめました。
友人に貰った何年も前の「10日で覚えるXML入門」とかいうの本を見てるんですが、いまいち分かりにくいので、他の入門書があったら教えて貰えませんか?
分けあって今PCがネットに繋げられない状況なので、ぐぐれってのは無しでお願いします(^_^;)
2008/12/27(土) 15:13:39
どっちかというとXSLTの本を買うべきなんじゃないかという気がするけど、
俺は全然わからないのでえろい人たのむ
2008/12/27(土) 15:23:01
Webになっちゃうけど「万葉の想い」には時々お世話になります。
とても説明が丁寧なので大変助けられます。
同僚が近くにいるときには微妙に利用しにくいのが何ですが(笑)。
2008/12/27(土) 19:16:44
>>113
Webは見たこと無いけど、書籍( ttp://www.amazon.co.jp/dp/4881662201/ )はよかったな
2008/12/27(土) 20:01:03
とりあえずオライリーいっとけ
2008/12/28(日) 11:30:54
>>112->>115
レスありがとうございます。
さっそく探してみようと思います。

あともう一ついいですか;
>>111で書いた資料部分だけじゃなくて、サイト全部をXML&XSLTで作るってのはアリでしょうか?
やるなら徹底的にやりたくなってきてしまいました;
2008/12/28(日) 14:00:00
なし。
ブラウザ実装のXSLTトランスフォーマは屑だらけな上、互換性ないから。
そういうことしたいならphpとかjspとかそっち系。
2008/12/28(日) 17:20:33
標準準拠してない処理系を切り捨てる気があるなら十分アリ。
2008/12/28(日) 17:30:58
挑戦してみて一度挫折してみるのも技術の可能性と限界、適切な適用領域
を理解するために良いかも。

以前「元データのXMLをこのXSLTで変換すると、こ〜んなインタラクティブ
なHTMLページに!」なんてものを紹介された事があって、その実装の詳細
をみて驚愕した事がある。

それはまさにJavaScriptコードを生成するXSLT。HTML要素を出力する
templateの記述はほんの数行で、あとはJavaScript変数に値を代入する
templateやJavaScript関数を実行するtemplateが延々と続く。
これでXMLデータを変換すると殆ど空っぽのHTML文書に巨大JavaScript
プログラムが埋め込まれたものを生成。
で、具体的なHTML文書中の表示要素の生成やインタラクティブ云々は
全てJavaScriptプログラム側に丸投げされているという、そういう代物。

で、見て関心しているだけだったら良かったのだけど、そのXSLTのデバッグ
を仕事に振られて・・・(´Д⊂
2008/12/28(日) 17:40:32
ろくにクロスブラウザされてなくて動作チェックに苦労したと・・・。
2008/12/28(日) 17:43:46
クロスブラウザとかライブラリ側でやってくれてないと死ねるな。
2008/12/28(日) 18:19:33
クロスブラウザも苦労しましたが、一番死ねたのがXSLTとJavaScriptが
素晴らしくフュージョンしてコンバインしていた点です。
XSLTのtemplateとしてJavaScriptの関数宣言が記述されていて、その
関数定義中の所々にまたXSLTのapply-templatesやfor-eachが記述
されている。

で、変換するXMLデータに応じて新しい関数を動的にバキバキ宣言して、
そのロジックをニョキニョキと自動生成するのです。

その技術ロマンは理解出来ないわけでもありません。ですが、

・変換対象のXMLデータに応じて、毎回JavaScript関数の内容が変化(涙)
・JavaScriptのデバッグをするのに、書き換えるのはXSLT、そのもどかしさ

・・・最終的にはXMLデータをJSON風のJavaScript Objectの配列に変換
するところだけにXSLTは用いて、「静的な」JavaScriptプログラムとして
ロジックを一から書き直して放り込んで始末しました。

プログラムの世界には、時々「混ぜては危険」なものもあると実感しました。
2008/12/28(日) 18:36:18
>関数定義中の所々にまたXSLTのapply-templatesやfor-eachが記述
されている。
>
>で、変換するXMLデータに応じて新しい関数を動的にバキバキ宣言して、
>そのロジックをニョキニョキと自動生成するのです。

さすがチューリング完全のXSLT・・・と言いたいが、
そういうのは実行中にオブジェクトのプロパティに関数突っ込むのがプロトタイプベースOOPの流儀なんだが。
ろくにjavascript触れないPGの苦肉の策にしか見えない。

てかHTML+DOMだけでできる気がする。
2008/12/28(日) 18:40:59
言語のコンパイラひとつ丸ごとデバッグしろっていうのに等しいなw
2008/12/28(日) 19:06:30
実際、言語コンバータ一つ丸ごとデバッグしてるので間違ってないな。
2008/12/28(日) 19:08:25
>>123
元々はSVGによるグラフをXSLTを使って生成する事が目的だった様です。
ところがSVGの代わりにFlashのグラフコンポーネントを使う事になって、
そのFlashではパラメーターをJavaScriptで渡す必要があった。
で、「よ〜しJavaScriptコードもXSLTで生成しちゃうぞ〜」となった様です。

やがてXSLTを用いたJavaScriptコードの生成技術にもますます磨きが
かかり、関数宣言やロジック実装までXSLTでバキバキ行うように。

いや動く、確かに動くんです。デバッグの手間や拡張さえ考えなければ。
技術の無駄遣いというか、どこで磨き方の方向を誤ったのやら・・・

>>124
いや、まさにそんな感じです。プログラムだけではなくコンパイラの面倒も
見なくちゃいけない、そんな感じでした。
2008/12/29(月) 00:47:44
俺はPHPでXSLTでXML整形してかきだすWikiみたいの作ってるけど
未実装関数とか多いわ挙動おかしいわで苦労することだけは伝えておこう。
あとhtml5で書こうとしてXSLTからはDOCTYPE生成できないとか、
妙に新しいことやるのもダメポ。
2008/12/29(月) 01:11:45
>>127
DOCTYPE が生成できないとか嘘だろ。
2008/12/29(月) 23:22:05
>>126
なんか見る人が見たら一発で特定されそうだなw
まぁ、なんというかお疲れ様
2008/12/30(火) 17:59:51
xml好きの俺が仕事納めに一言申します

php, jsp, aspとかのソース見てると罪悪感
嫌悪感を感じます
<e name="<%= value %>" />

なんか、いや、もうっやめてあげてえーー
2008/12/30(火) 18:23:09
こういうXMLに変数値を埋め込む方法は悩ましいですねぇ。
E4Xではどうでしょう(以下はActionScript3の例)。

var value:String ="Foo bar"
var xml:XML = <e name={value} />

二重引用符が必要無いのが素敵。
2008/12/30(火) 18:43:15
hamlとか割といいと思いますヨ
2008/12/30(火) 21:40:53
普通にDOMで吐き出してるなあ
2009/01/18(日) 23:24:09
亀だが、JSPならXML構文使えば?
数値文字参照とかELとかでいくらでも解消できるだろ。
2009/01/20(火) 11:01:04
データをCSVからXMLに移行しようと思ったのですが、本が古くて今でも通用するのか心配です。
XMLでデータを作成して、XSLTでIEに表示させるようにするのが主流であってますか?
CSSという奴はどういう位置付けなんでしょうか?
136デフォルトの名無しさん
垢版 |
2009/01/20(火) 11:01:41
すいません上げさせてください。
2009/01/20(火) 11:47:45
>>135
XML で作成したデータを XSLT で変換するのは
IE じゃなくて Java とかのプログラムを使うのが普通かと。
ユーザーが全員 IE を使ってるわけではないし
全てのブラウザが正しく XSLT に対応しているわけでもない。
自分だけで使うなら IE でも全然かまわないが。

XSLT が文書構造(スタイル)を決定するのに対して
CSS は見た目(スタイル)を決める。
例えばデータを XSLT で表構造に変換して CSS で表に枠を付けるみたいに。
138デフォルトの名無しさん
垢版 |
2009/01/20(火) 12:26:50
Java入れるくらいならそのページは見ない。

IE使ってる人 > そのページを見るためにJava入れてもいい人

この式が成り立つなら、IE対応で良いのでは?
サーバーサイドに関してはどうでもいいと思いますね。
2009/01/20(火) 12:31:46
これほどまでに珍妙なレスは久々に見た気がする
2009/01/20(火) 13:14:48
>>138
JavaってXMLをHTMLに変換して表示するだけならサーブレットでいいんじゃないの。
ユーザー側は何も「入れる」必要なく見れる。

サーブレットまで行かなくてもPHP(笑)とかRubyとかPython使ってサーバー側で変換して、
ユーザーには変換後のHTML(+CSS)のみ返すのが主流じゃないか?

…それともjavascriptで変換するつもりじゃないよね?
2009/01/20(火) 13:32:07
>>135
>XMLでデータを作成して、XSLTでIEに表示させるようにするのが主流であってますか?

そういう未来は結局来なかった、というのが正解では。

まずWebブラウザ上のXSLTプロセッサを利用してクライアントサイドで
XMLをHTML等に変換して表示、これはあまりポピュラーではない。
問題はつい最近までのブラウザのXSLT実装状況のばらつき。
積極的に使われるのは趣味か、イントラ等でクライアント環境が揃って
いる場合ぐらいではないかと思う。。

次にJava等のライブラリを用いてサーバーサイドで変換、変換結果の
HTML等をクライアントに送信する用途では、案外使われる。
ただしこの場合にはJSP等が対抗技術になる。
XMLで表現されたデータをそのまま表示する事というのは案外少なくて、
大抵はビューとの間にロジックを噛ます。そういう場合はXML上のデータ
を一旦Java等のオブジェクトにマッピングする必要があるし、この場合は
JSP等でビューを定義して出力した方が簡単。
サーバーサイドでの利用に関しては、ビューのテンプレートを記述する
技術のワンオブゼムという扱いだと思う。
2009/01/20(火) 13:34:22
IEのXSLTエンジンが一番屑な気がするんだが
143デフォルトの名無しさん
垢版 |
2009/01/20(火) 13:46:15
XML+XSLTの本しかないのでわからないのですが
XSLTを勉強するのは意味無駄だということでしょうか?
今のIEコンポーネントで自分のアプリ内だけでXMLデータを表示させるにはなんら問題はないんでしょうか?
どのみちきれいに見えるようにCSSも勉強しないといけないということですね。
2009/01/20(火) 15:40:24
無意味って事はないよ。勉強という意味では学んでみるのも
悪くない。ただその本が書かれていた頃に期待されていたほど
大活躍はしていないというのも事実だと思う。

CSSについては書いてある通り。XSLTによってHTMLを出力する
にせよ、そのHTMLを見栄えのするものにするには結局CSS等の
Webオーサリング界隈で使われている技術を用いる必要がある。
2009/01/20(火) 23:27:43
CSS Lv3が控えてるからなぁ。あれは組版にも耐える仕様。XSLTと衝突する。
まあ日本語組版に耐えうるかは知らんが・・・日本語は手でやるのが最強だしな。
2009/01/21(水) 09:19:08
http://www.w3.org/1999/XSL/Transform
はなんで書かないといけないんですか?
情報収集されているということなんでしょうか?
2009/01/21(水) 10:22:47
なんだ釣りか
2009/01/21(水) 18:31:12
いやまぁ、俺もそれで大分悩んだクチだが。

>>146
結論から言うと、それは「ただの一意な文字列」であるという以上の意味はない。
「xmlns:xsl="http://www.w3.org/1999/XSL/Transform"」と書けば、
<xsl:〜>というタグはXSLT的に意味があるよ、というお約束なだけ。

ブラウザで開いてみれば分かるけど、そのアドレス自体は仕様へのリンクが
張ってあるだけのページで、XSLT処理系もパースの度にそこにアクセスしたりはしない。
2009/01/22(木) 07:21:58
ありがとう!全XMLを一括管理されてるのかと思ってXMLやめようかと思ったよ
150デフォルトの名無しさん
垢版 |
2009/01/22(木) 07:32:37
全xml管理を想像した…
すごいスペックだ
2009/01/22(木) 07:59:41
THcompを思い出した。
2009/01/22(木) 13:49:40
XMLのシンプルなデータ構造をブラウザで表示する場合一番いい方法はなんですか?
XMLにXSLTを参照させてXMLを表示
HTMLにXMLを参照させてHTMLを表示
2009/01/22(木) 13:59:18
Firefox なら xml を見るモードがあるけど、そういうのはダメなの?
2009/01/22(木) 14:53:10
見た目を調整したいのですが、いろいろ実現する方法があるので、違いがわからず
決めかねてるんですが、組み合わせは実現できればどうでもいいんでしょうか?
2009/01/22(木) 15:41:11
xhtmlにしてfirefoxでエディットモードでいじればいいんじゃないだろうか。
表示周りはCSSごりごり書いて。
2009/01/22(木) 15:46:36
html として解釈できない xml から html として解釈できる xml に変換するのが XSLT
html のレンダリング方法をいじる情報を付加するのが CSS
157デフォルトの名無しさん
垢版 |
2009/01/22(木) 15:58:01
>>152
xsltかjavascriptかってことなんかな?
2009/01/22(木) 16:42:56
Linux使えばいい。
2009/01/22(木) 19:14:31
XMLにXSLTを参照させてXMLを表示
HTMLにXMLを参照させてHTMLを表示

この2つだとどっちが自然ですか?
両方HTMLにXMLの情報を取り込んでレイアウトできるんですが。
2009/01/22(木) 19:43:59
>>159

「自然」の定義と、

>HTMLにXMLを参照させてHTMLを表示

これでちょっとよく分からない。フレームやJavaScriptで取り込む
と言うこと?

あとはサーバを介すか全てクライアントで処理するかでも変わる。
現状WebブラウザのXSLTプロセッサの利用は現実的ではない。
161デフォルトの名無しさん
垢版 |
2009/01/22(木) 20:00:15
便乗質問しても良い?

XML+XSLT(サーバーサイド)がメインのサイトって、やっぱりテンプレートメインのサイトより少数派なんかな。
2009/01/22(木) 22:45:54
>>148
でもちょっとくらいそういう欲目はあったかもしれない。

 未知構造の文書でも動的にnamespaceの参照先URLにアクセスして
 きっちりオンザフライでバリデーションします!なんてエレガント!
 俺って天才!

みたいな。
2009/01/22(木) 22:56:19
>>162
ていうか、最初そういうものだと思ってスッゲー!って感動していた俺ガイル
2009/01/23(金) 22:25:14
RubyのREXML(3.1.7.3)使っているんですが
こんなデータがあって
data1//----
<root>
<elem>1</elem>
<elem>2</elem>
<elem>3</elem>
</root>
----//
data2//----
<root><elem>1</elem><elem>2</elem><elem>3</elem></root>
----//
こんなコードで動かすと
//----
require "rexml/document"
xmldata = REXML::Document.new(File.new("data.xml"))

for i in 1..3
puts(xmldata.elements["/root"].elements[i,"elem"])
puts(xmldata.elements["/root"].elements[i,"elem"].index_in_parent)
end

続く
2009/01/23(金) 22:25:45
データ1での結果//----
<elem>1</elem>
2
<elem>2</elem>
4
<elem>3</elem>
6
----//
データ2での結果//----
<elem>1</elem>
1
<elem>2</elem>
2
<elem>3</elem>
3
----//
こんな結果になります。
改行を一要素として数えている?

これってバグですかね?
それとも自分がバグ?
2009/01/23(金) 22:28:26
xmldata.elements["/root"].size
でもそれぞれ7と3が返っている

XMLの仕様?パーサの仕様?バグ?
どなたかおしえてー
2009/01/23(金) 22:47:23
改行がTEXTノードとして間に挟まっていると思われ。
xmldata.elements["/root"].elements.each {|e| p e}
とかで確認してみては。
168164
垢版 |
2009/01/23(金) 22:58:32
>>167
試してみました
結果は両方同じで以下のように表示されます
----
<elem> ... </>
<elem> ... </>
<elem> ... </>
----
CR+LFをLFやCRにしてみても同じでした
なぜだー
2009/01/23(金) 23:10:26
index は要素だけじゃなくて全てのノードなのに対して
elements が要素しか返さないからじゃないのか?
170164
垢版 |
2009/01/23(金) 23:21:13
要素名指定なしで、indexのみで表示してみました
for i in 1..3
puts(xmldata.elements["/root"].elements[i])
end

結果はまた両方同じで
<elem>1</elem>
<elem>2</elem>
<elem>3</elem>
171164
垢版 |
2009/01/23(金) 23:23:08
こんどはrootから直indexで
for i in 1..3
puts(xmldata.elements["/root"][i])
end
----
<elem>1</elem>

<elem>2</elem>
----
<elem>2</elem>
<elem>3</elem>

----
む、微妙な差が。
2009/01/23(金) 23:27:04
もちついてレスを検証したほうがいいぞ
173164
垢版 |
2009/01/23(金) 23:28:36
for i in 0..3
でやったらこんな感じ
----

<elem>1</elem>

<elem>2</elem>
----
<elem>1</elem>
<elem>2</elem>
<elem>3</elem>

----

index_in_parentはelements単位のindexじゃなくて、
parent[index]のindexを返すのか
で、これには何故か改行コードも一要素として数えられる、と

むぅ、なんか使いにくいぞ>index_in_parent
174164
垢版 |
2009/01/23(金) 23:34:06
えーと、ていうことは、今着目してる"elem"elementsが
親要素の中の何番目の"elem"elementsなのかを
直接知る方法が無いってことかい?

とりあえずもうちょっと検証してみます
ヒントくれた人ありがとー
2009/01/23(金) 23:47:35
うりゃ

for i in 1..3
puts(xmldata.elements["/root"].elements[i,"elem"])
e = xmldata.elements["/root"].elements[i,"elem"]
puts e.parent.elements.index(e) #ここ注目
end

index_in_parentはNodeクラスで定義されているので、
index_in_parentがelementだけではなくTEXTノードも
含めた全ての子Nodeの中での位置を指し示すのは
当然の仕様なんですよ。

なのでelementの並びの中での位置を知りたければ
親elementのelements配列中でのindexを求めれば
良いわけで、上記の解。
176164
垢版 |
2009/01/24(土) 00:11:29
>>175
うおー、ばっちりです
これでコーディングが進みます
本当にありがとー
2009/01/25(日) 21:22:42
>>157
最近jQueryを弄っていたので試しにXML Viewerを作ってみようと
したら、案外めんどくさかった。
Tree表示のjQuery Pluginを使えば数行でサクッと出来るかもと
思ったけど、DOMの12のNodeタイプにそれぞれ対応した処理を
書かなければならなかったのが面倒。
178デフォルトの名無しさん
垢版 |
2009/01/25(日) 21:24:10
以下のXMLをその下のXSLで変換してFireFoxで表示させようとしてます。
変換はFireFoxにやらせてます。

<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="hoge.xsl" ?>
<books>
<logo>http://www2.2ch.net/2ch.html<;/logo>
</books>



<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html><body>
<xsl:element name="img">
<xsl:attribute name="src">
<xsl:value-of select="logo" />
</xsl:attribute>
</xsl:element>
</body></html>
</xsl:template>
</xsl:stylesheet>

でもなにも表示されません。これって何か間違ってますでしょうか?
179デフォルトの名無しさん
垢版 |
2009/01/25(日) 21:52:40
>>178
画像じゃないじゃん
2009/01/25(日) 22:02:41
<xsl:value-of select="books/logo" />
181デフォルトの名無しさん
垢版 |
2009/01/25(日) 22:05:21
>>179
ありがとうございます。
そうか、と思って直してIEで表示させたら表示できました。
でもFirefoxではやっぱり何も表示されませんでした。
IEとFirefoxってXSLの動きが違うのでしょうか?
182デフォルトの名無しさん
垢版 |
2009/01/25(日) 22:08:08
>>180
すいません。
180のとおりにやったらIEでもFirefoxでも同じように表示されました。
エラそうなこと言って失礼しました。
2009/01/26(月) 09:34:23
Firefox3.0.5でローカルファイルのXMLでXSLでHTML出力させていますが
一階層上のXSLファイルを相対パスで指定するとXSLが適用されず
テキストのみの表示になります。

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../style.xsl"?>


同一のファイル構成で以下のブラウザでは問題なく表示できました。
IE7/Opera9.63/Safari3.2.1/Chrome1.0.154.43/Seamonkey1.1.14/Netscape9.0.0.5

Firefox3.1beta等でも試してみたところ3.05と同じです。
ただしWebにあげるとどのバージョンのFirefoxでも問題なく表示できます。

Geckoの問題?
2009/01/26(月) 11:57:32
>>183
先日俺も同じ状況に陥った。
結局 Saxon で前処理してから表示するようにしたけど
やっぱ Firefox が原因なのか。
2009/01/30(金) 02:50:30
>>184
これはFirefoxのバグになるのかな?
仕様・・・ってわけにもいかないよね
2009/01/30(金) 07:47:26
ローカルだとなんかセキュリティがかかっちゃうとか?
2009/01/30(金) 14:28:54
ローカルだとローカルにあるファイル参照できないよ。mozilla系は。doctypeでSYSTEM指定しないとだめだったはず。
2009/02/05(木) 19:33:29
Win2008のイベントログをXMLDOMで読み込んで使いたいんですが、XPathクエリがうまく動きません。
何が悪いか見ていただけませんか。

コード(test.vbs)
--
Set dom = CreateObject("Microsoft.FreethreadedXMLDOM")
dom.async = False
dom.setProperty "SelectionLanguage", "XPath"

dom.load "event.xml"
strPath = "*[System/EventID=12012]"
Set colNodes = dom.documentElement.selectNodes(strPath)

WScript.Echo "nodes:" & colNodes.length
--

XML
--
<?xml version="1.0" encoding="SHIFT_JIS"?>
<root>
<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'>;<System><EventID>12011</EventID></System></Event>
<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'>;<System><EventID>12012</EventID></System></Event>
</root>
--

xmlns='http://schemas.microsoft.com/win/2004/08/events/event'がないとうまく動くのですが、xmlnsを指定している場合に
XPathクエリの指定方法が調べた限りで見つからなかったので。
2009/02/06(金) 10:29:01
>>188
XPathではプレフィックスなしの要素名は名前空間なしと決まっているんだ。

MSXMLだと名前空間コンテキストを指定する方法があったはず。それでプ
レフィックス⇒名前空間の対応を指定して、XPath中ではプレフィックス
付きで書く。
190188
垢版 |
2009/02/06(金) 11:29:45
回答ありがとうございます。

こんな感じですかね?
エラーは出ないけれどノードは認識しないので、まだ何かが足りない風味ですが。

----
Set dom = CreateObject("Microsoft.FreethreadedXMLDOM")
dom.async = False
dom.setProperty "SelectionLanguage", "XPath"
dom.setProperty "SelectionNamespaces", "xmlns:evt='http://schemas.microsoft.com/win/2004/08/events/event'"

dom.load "event.xml"
strPath = "/root/evt:Event[System/EventID=12012]"
Set colNodes = dom.documentElement.selectNodes(strPath)

WScript.Echo "nodes:" & colNodes.length
----
理解が足りてないようなので、もう少しぐぐってみます。
191188
垢版 |
2009/02/06(金) 11:34:08
連続で失礼します。

---
strPath = "/root/evt:Event[evt:System/evt:EventID=12012]"
---
でいいんですね。
うまく取得できるようになりました。

ちなみに、検索の[]内をwevtutil.exeに投げるXPathと同じにしたかったのですが、evt:Systemとかつけなくて済む方法はあったりしますか?
もしご存じであれば教えてください。
2009/02/06(金) 19:33:09
/root/evt:Event/evt:System[evt:EventID=12012]/..
193188
垢版 |
2009/02/09(月) 14:10:02
書き方が悪かったですね、失礼しました。
wevtutilと同じように、System以下をプレフィックスなしで書きたかったのですが、仕様で無理みたいなので今回はこのまま進めようと思います。
回答ありがとうございました。
2009/02/10(火) 18:00:50
Xerces C++を使っています。

とあるアプリケーション(A)のモジュール(B)が返したXMLツリーを
Aで管理しているXML文書の子要素として取り込むという処理を行いたいのですが、
BからAが管理するXML文書にアクセスできないようにしたいと思っています。

AからBにドキュメントオブジェクトを渡さないようにして、
Bの内部でXMLツリーを作成したいのですが、どのようにしたらいいでしょうか?

AとBの間の受け渡しはXMLのテキストで行います。

Bの中でドキュメントを作成して、ルート以下をメモリ上にシリアライズして
それをコピーする方法が考えられるのですが、もう少しスマートな方法はないでしょうか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況