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/
探検
<XML総合 part="3"/>
■ このスレッドは過去ログ倉庫に格納されています
2008/10/07(火) 17:40:09
135デフォルトの名無しさん
2009/01/20(火) 11:01:04 データをCSVからXMLに移行しようと思ったのですが、本が古くて今でも通用するのか心配です。
XMLでデータを作成して、XSLTでIEに表示させるようにするのが主流であってますか?
CSSという奴はどういう位置付けなんでしょうか?
XMLでデータを作成して、XSLTでIEに表示させるようにするのが主流であってますか?
CSSという奴はどういう位置付けなんでしょうか?
136デフォルトの名無しさん
2009/01/20(火) 11:01:41 すいません上げさせてください。
137デフォルトの名無しさん
2009/01/20(火) 11:47:45 >>135
XML で作成したデータを XSLT で変換するのは
IE じゃなくて Java とかのプログラムを使うのが普通かと。
ユーザーが全員 IE を使ってるわけではないし
全てのブラウザが正しく XSLT に対応しているわけでもない。
自分だけで使うなら IE でも全然かまわないが。
XSLT が文書構造(スタイル)を決定するのに対して
CSS は見た目(スタイル)を決める。
例えばデータを XSLT で表構造に変換して CSS で表に枠を付けるみたいに。
XML で作成したデータを XSLT で変換するのは
IE じゃなくて Java とかのプログラムを使うのが普通かと。
ユーザーが全員 IE を使ってるわけではないし
全てのブラウザが正しく XSLT に対応しているわけでもない。
自分だけで使うなら IE でも全然かまわないが。
XSLT が文書構造(スタイル)を決定するのに対して
CSS は見た目(スタイル)を決める。
例えばデータを XSLT で表構造に変換して CSS で表に枠を付けるみたいに。
138デフォルトの名無しさん
2009/01/20(火) 12:26:50 Java入れるくらいならそのページは見ない。
IE使ってる人 > そのページを見るためにJava入れてもいい人
この式が成り立つなら、IE対応で良いのでは?
サーバーサイドに関してはどうでもいいと思いますね。
IE使ってる人 > そのページを見るためにJava入れてもいい人
この式が成り立つなら、IE対応で良いのでは?
サーバーサイドに関してはどうでもいいと思いますね。
139デフォルトの名無しさん
2009/01/20(火) 12:31:46 これほどまでに珍妙なレスは久々に見た気がする
140デフォルトの名無しさん
2009/01/20(火) 13:14:48 >>138
JavaってXMLをHTMLに変換して表示するだけならサーブレットでいいんじゃないの。
ユーザー側は何も「入れる」必要なく見れる。
サーブレットまで行かなくてもPHP(笑)とかRubyとかPython使ってサーバー側で変換して、
ユーザーには変換後のHTML(+CSS)のみ返すのが主流じゃないか?
…それともjavascriptで変換するつもりじゃないよね?
JavaってXMLをHTMLに変換して表示するだけならサーブレットでいいんじゃないの。
ユーザー側は何も「入れる」必要なく見れる。
サーブレットまで行かなくてもPHP(笑)とかRubyとかPython使ってサーバー側で変換して、
ユーザーには変換後のHTML(+CSS)のみ返すのが主流じゃないか?
…それともjavascriptで変換するつもりじゃないよね?
141デフォルトの名無しさん
2009/01/20(火) 13:32:07 >>135
>XMLでデータを作成して、XSLTでIEに表示させるようにするのが主流であってますか?
そういう未来は結局来なかった、というのが正解では。
まずWebブラウザ上のXSLTプロセッサを利用してクライアントサイドで
XMLをHTML等に変換して表示、これはあまりポピュラーではない。
問題はつい最近までのブラウザのXSLT実装状況のばらつき。
積極的に使われるのは趣味か、イントラ等でクライアント環境が揃って
いる場合ぐらいではないかと思う。。
次にJava等のライブラリを用いてサーバーサイドで変換、変換結果の
HTML等をクライアントに送信する用途では、案外使われる。
ただしこの場合にはJSP等が対抗技術になる。
XMLで表現されたデータをそのまま表示する事というのは案外少なくて、
大抵はビューとの間にロジックを噛ます。そういう場合はXML上のデータ
を一旦Java等のオブジェクトにマッピングする必要があるし、この場合は
JSP等でビューを定義して出力した方が簡単。
サーバーサイドでの利用に関しては、ビューのテンプレートを記述する
技術のワンオブゼムという扱いだと思う。
>XMLでデータを作成して、XSLTでIEに表示させるようにするのが主流であってますか?
そういう未来は結局来なかった、というのが正解では。
まずWebブラウザ上のXSLTプロセッサを利用してクライアントサイドで
XMLをHTML等に変換して表示、これはあまりポピュラーではない。
問題はつい最近までのブラウザのXSLT実装状況のばらつき。
積極的に使われるのは趣味か、イントラ等でクライアント環境が揃って
いる場合ぐらいではないかと思う。。
次にJava等のライブラリを用いてサーバーサイドで変換、変換結果の
HTML等をクライアントに送信する用途では、案外使われる。
ただしこの場合にはJSP等が対抗技術になる。
XMLで表現されたデータをそのまま表示する事というのは案外少なくて、
大抵はビューとの間にロジックを噛ます。そういう場合はXML上のデータ
を一旦Java等のオブジェクトにマッピングする必要があるし、この場合は
JSP等でビューを定義して出力した方が簡単。
サーバーサイドでの利用に関しては、ビューのテンプレートを記述する
技術のワンオブゼムという扱いだと思う。
142デフォルトの名無しさん
2009/01/20(火) 13:34:22 IEのXSLTエンジンが一番屑な気がするんだが
143デフォルトの名無しさん
2009/01/20(火) 13:46:15 XML+XSLTの本しかないのでわからないのですが
XSLTを勉強するのは意味無駄だということでしょうか?
今のIEコンポーネントで自分のアプリ内だけでXMLデータを表示させるにはなんら問題はないんでしょうか?
どのみちきれいに見えるようにCSSも勉強しないといけないということですね。
XSLTを勉強するのは意味無駄だということでしょうか?
今のIEコンポーネントで自分のアプリ内だけでXMLデータを表示させるにはなんら問題はないんでしょうか?
どのみちきれいに見えるようにCSSも勉強しないといけないということですね。
144デフォルトの名無しさん
2009/01/20(火) 15:40:24 無意味って事はないよ。勉強という意味では学んでみるのも
悪くない。ただその本が書かれていた頃に期待されていたほど
大活躍はしていないというのも事実だと思う。
CSSについては書いてある通り。XSLTによってHTMLを出力する
にせよ、そのHTMLを見栄えのするものにするには結局CSS等の
Webオーサリング界隈で使われている技術を用いる必要がある。
悪くない。ただその本が書かれていた頃に期待されていたほど
大活躍はしていないというのも事実だと思う。
CSSについては書いてある通り。XSLTによってHTMLを出力する
にせよ、そのHTMLを見栄えのするものにするには結局CSS等の
Webオーサリング界隈で使われている技術を用いる必要がある。
145デフォルトの名無しさん
2009/01/20(火) 23:27:43 CSS Lv3が控えてるからなぁ。あれは組版にも耐える仕様。XSLTと衝突する。
まあ日本語組版に耐えうるかは知らんが・・・日本語は手でやるのが最強だしな。
まあ日本語組版に耐えうるかは知らんが・・・日本語は手でやるのが最強だしな。
146デフォルトの名無しさん
2009/01/21(水) 09:19:08147デフォルトの名無しさん
2009/01/21(水) 10:22:47 なんだ釣りか
148デフォルトの名無しさん
2009/01/21(水) 18:31:12 いやまぁ、俺もそれで大分悩んだクチだが。
>>146
結論から言うと、それは「ただの一意な文字列」であるという以上の意味はない。
「xmlns:xsl="http://www.w3.org/1999/XSL/Transform"」と書けば、
<xsl:〜>というタグはXSLT的に意味があるよ、というお約束なだけ。
ブラウザで開いてみれば分かるけど、そのアドレス自体は仕様へのリンクが
張ってあるだけのページで、XSLT処理系もパースの度にそこにアクセスしたりはしない。
>>146
結論から言うと、それは「ただの一意な文字列」であるという以上の意味はない。
「xmlns:xsl="http://www.w3.org/1999/XSL/Transform"」と書けば、
<xsl:〜>というタグはXSLT的に意味があるよ、というお約束なだけ。
ブラウザで開いてみれば分かるけど、そのアドレス自体は仕様へのリンクが
張ってあるだけのページで、XSLT処理系もパースの度にそこにアクセスしたりはしない。
149デフォルトの名無しさん
2009/01/22(木) 07:21:58 ありがとう!全XMLを一括管理されてるのかと思ってXMLやめようかと思ったよ
150デフォルトの名無しさん
2009/01/22(木) 07:32:37 全xml管理を想像した…
すごいスペックだ
すごいスペックだ
151デフォルトの名無しさん
2009/01/22(木) 07:59:41 THcompを思い出した。
152デフォルトの名無しさん
2009/01/22(木) 13:49:40 XMLのシンプルなデータ構造をブラウザで表示する場合一番いい方法はなんですか?
XMLにXSLTを参照させてXMLを表示
HTMLにXMLを参照させてHTMLを表示
XMLにXSLTを参照させてXMLを表示
HTMLにXMLを参照させてHTMLを表示
153デフォルトの名無しさん
2009/01/22(木) 13:59:18 Firefox なら xml を見るモードがあるけど、そういうのはダメなの?
154デフォルトの名無しさん
2009/01/22(木) 14:53:10 見た目を調整したいのですが、いろいろ実現する方法があるので、違いがわからず
決めかねてるんですが、組み合わせは実現できればどうでもいいんでしょうか?
決めかねてるんですが、組み合わせは実現できればどうでもいいんでしょうか?
155デフォルトの名無しさん
2009/01/22(木) 15:41:11 xhtmlにしてfirefoxでエディットモードでいじればいいんじゃないだろうか。
表示周りはCSSごりごり書いて。
表示周りはCSSごりごり書いて。
156デフォルトの名無しさん
2009/01/22(木) 15:46:36 html として解釈できない xml から html として解釈できる xml に変換するのが XSLT
html のレンダリング方法をいじる情報を付加するのが CSS
html のレンダリング方法をいじる情報を付加するのが CSS
157デフォルトの名無しさん
2009/01/22(木) 15:58:01 >>152
xsltかjavascriptかってことなんかな?
xsltかjavascriptかってことなんかな?
158デフォルトの名無しさん
2009/01/22(木) 16:42:56 Linux使えばいい。
159デフォルトの名無しさん
2009/01/22(木) 19:14:31 XMLにXSLTを参照させてXMLを表示
HTMLにXMLを参照させてHTMLを表示
この2つだとどっちが自然ですか?
両方HTMLにXMLの情報を取り込んでレイアウトできるんですが。
HTMLにXMLを参照させてHTMLを表示
この2つだとどっちが自然ですか?
両方HTMLにXMLの情報を取り込んでレイアウトできるんですが。
160デフォルトの名無しさん
2009/01/22(木) 19:43:59 >>159
「自然」の定義と、
>HTMLにXMLを参照させてHTMLを表示
これでちょっとよく分からない。フレームやJavaScriptで取り込む
と言うこと?
あとはサーバを介すか全てクライアントで処理するかでも変わる。
現状WebブラウザのXSLTプロセッサの利用は現実的ではない。
「自然」の定義と、
>HTMLにXMLを参照させてHTMLを表示
これでちょっとよく分からない。フレームやJavaScriptで取り込む
と言うこと?
あとはサーバを介すか全てクライアントで処理するかでも変わる。
現状WebブラウザのXSLTプロセッサの利用は現実的ではない。
161デフォルトの名無しさん
2009/01/22(木) 20:00:15 便乗質問しても良い?
XML+XSLT(サーバーサイド)がメインのサイトって、やっぱりテンプレートメインのサイトより少数派なんかな。
XML+XSLT(サーバーサイド)がメインのサイトって、やっぱりテンプレートメインのサイトより少数派なんかな。
162デフォルトの名無しさん
2009/01/22(木) 22:45:54 >>148
でもちょっとくらいそういう欲目はあったかもしれない。
未知構造の文書でも動的にnamespaceの参照先URLにアクセスして
きっちりオンザフライでバリデーションします!なんてエレガント!
俺って天才!
みたいな。
でもちょっとくらいそういう欲目はあったかもしれない。
未知構造の文書でも動的にnamespaceの参照先URLにアクセスして
きっちりオンザフライでバリデーションします!なんてエレガント!
俺って天才!
みたいな。
163デフォルトの名無しさん
2009/01/22(木) 22:56:19 >>162
ていうか、最初そういうものだと思ってスッゲー!って感動していた俺ガイル
ていうか、最初そういうものだと思ってスッゲー!って感動していた俺ガイル
164デフォルトの名無しさん
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
続く
こんなデータがあって
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
続く
165デフォルトの名無しさん
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
----//
こんな結果になります。
改行を一要素として数えている?
これってバグですかね?
それとも自分がバグ?
<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
----//
こんな結果になります。
改行を一要素として数えている?
これってバグですかね?
それとも自分がバグ?
166デフォルトの名無しさん
2009/01/23(金) 22:28:26 xmldata.elements["/root"].size
でもそれぞれ7と3が返っている
XMLの仕様?パーサの仕様?バグ?
どなたかおしえてー
でもそれぞれ7と3が返っている
XMLの仕様?パーサの仕様?バグ?
どなたかおしえてー
167デフォルトの名無しさん
2009/01/23(金) 22:47:23 改行がTEXTノードとして間に挟まっていると思われ。
xmldata.elements["/root"].elements.each {|e| p e}
とかで確認してみては。
xmldata.elements["/root"].elements.each {|e| p e}
とかで確認してみては。
168164
2009/01/23(金) 22:58:32 >>167
試してみました
結果は両方同じで以下のように表示されます
----
<elem> ... </>
<elem> ... </>
<elem> ... </>
----
CR+LFをLFやCRにしてみても同じでした
なぜだー
試してみました
結果は両方同じで以下のように表示されます
----
<elem> ... </>
<elem> ... </>
<elem> ... </>
----
CR+LFをLFやCRにしてみても同じでした
なぜだー
169デフォルトの名無しさん
2009/01/23(金) 23:10:26 index は要素だけじゃなくて全てのノードなのに対して
elements が要素しか返さないからじゃないのか?
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>
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>
----
む、微妙な差が。
for i in 1..3
puts(xmldata.elements["/root"][i])
end
----
<elem>1</elem>
<elem>2</elem>
----
<elem>2</elem>
<elem>3</elem>
----
む、微妙な差が。
172デフォルトの名無しさん
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
でやったらこんな感じ
----
<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なのかを
直接知る方法が無いってことかい?
とりあえずもうちょっと検証してみます
ヒントくれた人ありがとー
親要素の中の何番目の"elem"elementsなのかを
直接知る方法が無いってことかい?
とりあえずもうちょっと検証してみます
ヒントくれた人ありがとー
175デフォルトの名無しさん
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を求めれば
良いわけで、上記の解。
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を求めれば
良いわけで、上記の解。
177デフォルトの名無しさん
2009/01/25(日) 21:22:42 >>157
最近jQueryを弄っていたので試しにXML Viewerを作ってみようと
したら、案外めんどくさかった。
Tree表示のjQuery Pluginを使えば数行でサクッと出来るかもと
思ったけど、DOMの12のNodeタイプにそれぞれ対応した処理を
書かなければならなかったのが面倒。
最近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>
でもなにも表示されません。これって何か間違ってますでしょうか?
変換は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
画像じゃないじゃん
画像じゃないじゃん
180デフォルトの名無しさん
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の動きが違うのでしょうか?
ありがとうございます。
そうか、と思って直してIEで表示させたら表示できました。
でもFirefoxではやっぱり何も表示されませんでした。
IEとFirefoxってXSLの動きが違うのでしょうか?
182デフォルトの名無しさん
2009/01/25(日) 22:08:08183デフォルトの名無しさん
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の問題?
一階層上の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の問題?
184デフォルトの名無しさん
2009/01/26(月) 11:57:32185デフォルトの名無しさん
2009/01/30(金) 02:50:30186デフォルトの名無しさん
2009/01/30(金) 07:47:26 ローカルだとなんかセキュリティがかかっちゃうとか?
187デフォルトの名無しさん
2009/01/30(金) 14:28:54 ローカルだとローカルにあるファイル参照できないよ。mozilla系は。doctypeでSYSTEM指定しないとだめだったはず。
188デフォルトの名無しさん
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クエリの指定方法が調べた限りで見つからなかったので。
何が悪いか見ていただけませんか。
コード(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クエリの指定方法が調べた限りで見つからなかったので。
189デフォルトの名無しさん
2009/02/06(金) 10:29:01 >>188
XPathではプレフィックスなしの要素名は名前空間なしと決まっているんだ。
MSXMLだと名前空間コンテキストを指定する方法があったはず。それでプ
レフィックス⇒名前空間の対応を指定して、XPath中ではプレフィックス
付きで書く。
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
----
理解が足りてないようなので、もう少しぐぐってみます。
こんな感じですかね?
エラーは出ないけれどノードは認識しないので、まだ何かが足りない風味ですが。
----
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とかつけなくて済む方法はあったりしますか?
もしご存じであれば教えてください。
---
strPath = "/root/evt:Event[evt:System/evt:EventID=12012]"
---
でいいんですね。
うまく取得できるようになりました。
ちなみに、検索の[]内をwevtutil.exeに投げるXPathと同じにしたかったのですが、evt:Systemとかつけなくて済む方法はあったりしますか?
もしご存じであれば教えてください。
192デフォルトの名無しさん
2009/02/06(金) 19:33:09 /root/evt:Event/evt:System[evt:EventID=12012]/..
193188
2009/02/09(月) 14:10:02 書き方が悪かったですね、失礼しました。
wevtutilと同じように、System以下をプレフィックスなしで書きたかったのですが、仕様で無理みたいなので今回はこのまま進めようと思います。
回答ありがとうございました。
wevtutilと同じように、System以下をプレフィックスなしで書きたかったのですが、仕様で無理みたいなので今回はこのまま進めようと思います。
回答ありがとうございました。
194デフォルトの名無しさん
2009/02/10(火) 18:00:50 Xerces C++を使っています。
とあるアプリケーション(A)のモジュール(B)が返したXMLツリーを
Aで管理しているXML文書の子要素として取り込むという処理を行いたいのですが、
BからAが管理するXML文書にアクセスできないようにしたいと思っています。
AからBにドキュメントオブジェクトを渡さないようにして、
Bの内部でXMLツリーを作成したいのですが、どのようにしたらいいでしょうか?
AとBの間の受け渡しはXMLのテキストで行います。
Bの中でドキュメントを作成して、ルート以下をメモリ上にシリアライズして
それをコピーする方法が考えられるのですが、もう少しスマートな方法はないでしょうか?
とあるアプリケーション(A)のモジュール(B)が返したXMLツリーを
Aで管理しているXML文書の子要素として取り込むという処理を行いたいのですが、
BからAが管理するXML文書にアクセスできないようにしたいと思っています。
AからBにドキュメントオブジェクトを渡さないようにして、
Bの内部でXMLツリーを作成したいのですが、どのようにしたらいいでしょうか?
AとBの間の受け渡しはXMLのテキストで行います。
Bの中でドキュメントを作成して、ルート以下をメモリ上にシリアライズして
それをコピーする方法が考えられるのですが、もう少しスマートな方法はないでしょうか?
195デフォルトの名無しさん
2009/03/08(日) 10:39:12 XML の内容を比較するようなツールってありますかね?
XML のデータをツリーとしてみたときに、2つのツリーで異なるノードがあったとき
それを報告してくれるツールといいますか... あと XML のフォーマットの任意性
(改行やインデントの差、順序に寄らないノードのXMLでの出現順序等)を
ちゃんと考慮して、内容としての差のみ表示してくれるとうれしいのですが。
とりあえず linux でコマンドラインから使えたりすると非常にいいです。
が、Win や Mac 等の環境もあり、とにかく差分を表示してくれるようなソフトが
あるなら見てみたいなと思うので、ご紹介いただけると助かります。
XML のデータをツリーとしてみたときに、2つのツリーで異なるノードがあったとき
それを報告してくれるツールといいますか... あと XML のフォーマットの任意性
(改行やインデントの差、順序に寄らないノードのXMLでの出現順序等)を
ちゃんと考慮して、内容としての差のみ表示してくれるとうれしいのですが。
とりあえず linux でコマンドラインから使えたりすると非常にいいです。
が、Win や Mac 等の環境もあり、とにかく差分を表示してくれるようなソフトが
あるなら見てみたいなと思うので、ご紹介いただけると助かります。
196デフォルトの名無しさん
2009/03/08(日) 15:21:26 「xml diff」でググれ
197デフォルトの名無しさん
2009/03/11(水) 21:51:41 xmlstarletでselすると&とか数字とかに文字化けするんですが
どうしたらなおりますか?
どうしたらなおりますか?
198デフォルトの名無しさん
2009/03/12(木) 08:10:48 文字化け…?
199デフォルトの名無しさん
2009/03/12(木) 09:34:32 >>196
どうもありがとうございます。しかし何だか古い情報にしかヒットしない感が。
よほど需要が少ないのか、すでにソフトが枯れているのか...
とりあえず一つ一つ当たっていますが、もし個人的にお勧めなのとかあれば
教えてくださいますか?
どうもありがとうございます。しかし何だか古い情報にしかヒットしない感が。
よほど需要が少ないのか、すでにソフトが枯れているのか...
とりあえず一つ一つ当たっていますが、もし個人的にお勧めなのとかあれば
教えてくださいますか?
200デフォルトの名無しさん
2009/03/13(金) 15:09:08 XML Schemaについて質問なんですが。
実体参照を定義したいんですがどうやればいいかわかりません。
なお、すでにググってあります。
実体参照を定義したいんですがどうやればいいかわかりません。
なお、すでにググってあります。
201200
2009/03/13(金) 15:36:09 さらにググったらないとか…orz
かといって列挙が必要なのでDTDは不可能。
なんかいいスキーマ言語はないもんかね。
必要条件
実体参照をサポートするもの
列挙をサポートするもの
範囲指定が容易であればなおよい
もしDTDとXML Schemaの連携ができればそれで終わりなんですがね。
かといって列挙が必要なのでDTDは不可能。
なんかいいスキーマ言語はないもんかね。
必要条件
実体参照をサポートするもの
列挙をサポートするもの
範囲指定が容易であればなおよい
もしDTDとXML Schemaの連携ができればそれで終わりなんですがね。
202デフォルトの名無しさん
2009/03/13(金) 21:33:33203デフォルトの名無しさん
2009/03/14(土) 21:10:47204デフォルトの名無しさん
2009/03/16(月) 02:38:08 そうかなあ
205デフォルトの名無しさん
2009/03/16(月) 02:39:39 そうだよ。規格でそう決まってる
206デフォルトの名無しさん
2009/03/16(月) 10:58:33207デフォルトの名無しさん
2009/03/17(火) 03:50:15 何の説明にもなってないんだが……
208デフォルトの名無しさん
2009/03/26(木) 00:38:08 Microsoft.XMLDOMでProcessing Instructionの要素を取得する方法と
Processing Instructionの属性の値を読み書き方法を教えてください。
<?xml version="1.0" encoding="SHIFT_JIS"?>
<root>
<?aaa c="0" ?>
<eee g="0"/>
</root>
というようなXMLが有った場合、
eee要素の取得は XmlDom.documentElement.selectSingleNode("eee")
属性gの値の書き換えは、.Attributes.getNamedItem("g").text = "1"
で出来ますが、これと同じようにaaaのProcessing Instruction要素、
つまり<?aaa c="0" ?>を取得し、属性cの値を読み書きしたいのです。
この場合なら要素の取得は XmlDom.documentElement.childNodes(0)
で出来ますが、インデックス指定ではなaaaの名前指定で取得する方法をお願いします。
Microsoft.XMLDOMのバージョンは6.0です。
Processing Instructionの属性の値を読み書き方法を教えてください。
<?xml version="1.0" encoding="SHIFT_JIS"?>
<root>
<?aaa c="0" ?>
<eee g="0"/>
</root>
というようなXMLが有った場合、
eee要素の取得は XmlDom.documentElement.selectSingleNode("eee")
属性gの値の書き換えは、.Attributes.getNamedItem("g").text = "1"
で出来ますが、これと同じようにaaaのProcessing Instruction要素、
つまり<?aaa c="0" ?>を取得し、属性cの値を読み書きしたいのです。
この場合なら要素の取得は XmlDom.documentElement.childNodes(0)
で出来ますが、インデックス指定ではなaaaの名前指定で取得する方法をお願いします。
Microsoft.XMLDOMのバージョンは6.0です。
209デフォルトの名無しさん
2009/03/26(木) 08:46:34210デフォルトの名無しさん
2009/03/26(木) 08:50:54 と、思ったけど、
selectSingleNode("processing-instruction('aaa')")
でできるような気がする。
PIの内容は単なる文字列で、属性という概念はないので、「c="0" 」は
自分でパーズするしかないと思う。
selectSingleNode("processing-instruction('aaa')")
でできるような気がする。
PIの内容は単なる文字列で、属性という概念はないので、「c="0" 」は
自分でパーズするしかないと思う。
211デフォルトの名無しさん
2009/04/01(水) 07:34:20 ものすごく初歩的な質問だったらすみません。
xmlのツリー表示って"任意のツリーだけ最初から閉じた状態で"表示することってできるんですか?
xmlのツリー表示って"任意のツリーだけ最初から閉じた状態で"表示することってできるんですか?
212デフォルトの名無しさん
2009/04/01(水) 08:04:06 初歩的というか、意味不明です。
XMLを解釈して表示するのは、個々の処理系の責任なので、XMLとしてできるかできないかという話ではありません。
そういうソフトウェアを作りたいという話なら、答えはyesです。
XMLを解釈して表示するのは、個々の処理系の責任なので、XMLとしてできるかできないかという話ではありません。
そういうソフトウェアを作りたいという話なら、答えはyesです。
213デフォルトの名無しさん
2009/04/01(水) 18:03:59 xml単体ではできないということですね。
普段FireFoxでxmlファイルを開いて確認しているのですが、最初から全部のツリーが開いているのが個人的に気になったもので質問させていただきました。
答えてくださってありがとうございます。
普段FireFoxでxmlファイルを開いて確認しているのですが、最初から全部のツリーが開いているのが個人的に気になったもので質問させていただきました。
答えてくださってありがとうございます。
214デフォルトの名無しさん
2009/04/01(水) 18:45:26 >>213
それはFireFoxがそういう風に作られていると言うだけのことですから、XMLがどうかと言う話ではありませんね。
因みに、私の手元にあるXMLビューワは始めから全部閉じた状態で表示されます。
それはFireFoxがそういう風に作られていると言うだけのことですから、XMLがどうかと言う話ではありませんね。
因みに、私の手元にあるXMLビューワは始めから全部閉じた状態で表示されます。
215デフォルトの名無しさん
2009/04/01(水) 20:54:37216デフォルトの名無しさん
2009/04/01(水) 21:22:29 >>213
納得するのはいいが、今日が何の日か知ってるのか?
納得するのはいいが、今日が何の日か知ってるのか?
217デフォルトの名無しさん
2009/04/01(水) 21:52:05 一部のバカが、普段より更にバカなこと企てるが
一般人は何事もなく過ごす日
一般人は何事もなく過ごす日
218デフォルトの名無しさん
2009/04/02(木) 22:55:58 すみませんが、質問です。
たのしいXML: XSLT基礎編: xsl:copy-of
http://www6.airnet.ne.jp/manyo/xml/xslt/step30.html
に載っている
http://www6.airnet.ne.jp/manyo/xml/xslt/sample30/flights.xml
ですが、IE7だときれいにテーブルとして表示されますが、それ以外のブラウザ
(Firefox 3.02, Opera 9.64, Safari 3.1.2)だと、テーブルとして表示されま
せん。
これって、IEとその他、どちらが正しいのでしょうか?
ちなみにFirefoxだけエラーになるので、ローカルに保存して試しました。
たのしいXML: XSLT基礎編: xsl:copy-of
http://www6.airnet.ne.jp/manyo/xml/xslt/step30.html
に載っている
http://www6.airnet.ne.jp/manyo/xml/xslt/sample30/flights.xml
ですが、IE7だときれいにテーブルとして表示されますが、それ以外のブラウザ
(Firefox 3.02, Opera 9.64, Safari 3.1.2)だと、テーブルとして表示されま
せん。
これって、IEとその他、どちらが正しいのでしょうか?
ちなみにFirefoxだけエラーになるので、ローカルに保存して試しました。
219デフォルトの名無しさん
2009/04/02(木) 23:19:14 >>218
xsl:output が指定されていないから table 要素をどう表示するかは処理系次第なんじゃね?
xsl:output が指定されていないから table 要素をどう表示するかは処理系次第なんじゃね?
220デフォルトの名無しさん
2009/04/02(木) 23:31:56 >>219
なるほど!
xsl:stylesheet 要素の次に、
<xsl:output method="html" encoding="Shift_JIS"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
これを挿入すると、他のブラウザでも見事にテーブルになりました。
ありがとうございました。
なるほど!
xsl:stylesheet 要素の次に、
<xsl:output method="html" encoding="Shift_JIS"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />
これを挿入すると、他のブラウザでも見事にテーブルになりました。
ありがとうございました。
221デフォルトの名無しさん
2009/04/03(金) 11:53:02 ちょっとしつもん。
空白だけのドキュメントは、XMLデータと
してvalidでしたっけ?
空白だけのドキュメントは、XMLデータと
してvalidでしたっけ?
222デフォルトの名無しさん
2009/04/03(金) 12:21:42223221
2009/04/03(金) 19:58:27 >>222
ありがと。
やっぱり要素はなんか必須なのか。
>External parsed entity
初耳。
調べたら「外部解析実体」とかいうやつね。
well-formedからルートをなくした感じ?
いつもスキーマなしのstandaloneしか
使わないから知らなかったよ。
ありがと。
やっぱり要素はなんか必須なのか。
>External parsed entity
初耳。
調べたら「外部解析実体」とかいうやつね。
well-formedからルートをなくした感じ?
いつもスキーマなしのstandaloneしか
使わないから知らなかったよ。
224デフォルトの名無しさん
2009/04/07(火) 13:26:56 ちょw
225デフォルトの名無しさん
2009/04/07(火) 21:40:14 XPATH で名前空間によらずとにかく a というローカル名の要素に一致させたいんですけど、
名前空間のワイルドカードみたいな指定はできます?
名前空間のワイルドカードみたいな指定はできます?
226デフォルトの名無しさん
2009/04/08(水) 13:22:38227デフォルトの名無しさん
2009/04/10(金) 01:59:17 お聞きしたいんですけど、どこかに、ユーザスタイルシートとしてXSLTを適用
できるWEBブラウザはありませんか?Operaは駄目でした。あとIEは使いづらい
ので避けたいです。
Amazon APIを使った開発をするとき、レスポンスをブラウザで全部表示すると、
量が多すぎて困るんで、XSLTを適用して見られたら便利かなと思うんですよ。
それとも、他にもっと便利なXMLブラウザはありますか?
できるWEBブラウザはありませんか?Operaは駄目でした。あとIEは使いづらい
ので避けたいです。
Amazon APIを使った開発をするとき、レスポンスをブラウザで全部表示すると、
量が多すぎて困るんで、XSLTを適用して見られたら便利かなと思うんですよ。
それとも、他にもっと便利なXMLブラウザはありますか?
228デフォルトの名無しさん
2009/04/11(土) 00:07:53 必要な情報だけ抜き出して表示するんじゃダメなん?
229デフォルトの名無しさん
2009/04/12(日) 13:36:26 >>227
Firefox
Firefox
230デフォルトの名無しさん
2009/04/12(日) 16:22:46 Amayaはmathだけだっけ?
231デフォルトの名無しさん
2009/04/13(月) 01:12:03 >>229
> Firefox
すみません、どうやって設定するのでしょうか?
↓の記事によると、Firefoxは userContent.css というファイルをプロファイ
ルディレクトリに置くことでユーザスタイルシートを指定するようです。
ユーザスタイルシートによるカスタマイズ(1) - えむもじら
http://level.s69.xrea.com/mozilla/index.cgi?id=20070114_sdfx2_2
このファイル名からして、XSLTは指定できないように思えます。実際、
userContent.cssの内容をXSLTにしてみましたが、動作しませんでした。
> Firefox
すみません、どうやって設定するのでしょうか?
↓の記事によると、Firefoxは userContent.css というファイルをプロファイ
ルディレクトリに置くことでユーザスタイルシートを指定するようです。
ユーザスタイルシートによるカスタマイズ(1) - えむもじら
http://level.s69.xrea.com/mozilla/index.cgi?id=20070114_sdfx2_2
このファイル名からして、XSLTは指定できないように思えます。実際、
userContent.cssの内容をXSLTにしてみましたが、動作しませんでした。
232デフォルトの名無しさん
2009/04/13(月) 09:05:49 そういうアドオンを書けってはなしでしょw
233デフォルトの名無しさん
2009/04/26(日) 09:41:46 foo要素かbar要素を選択するXPathってどう書けばいいんでしょうか。
イメージ的には //foo or //barみたいな感じです。
イメージ的には //foo or //barみたいな感じです。
234デフォルトの名無しさん
2009/04/26(日) 09:45:58 ああ、|が使えるんだ。
どうもスレ汚し済みませんでした。
どうもスレ汚し済みませんでした。
235デフォルトの名無しさん
2009/04/27(月) 21:02:32 文法で質問です。解析しようとするXML中に
[adlcp:datafrom]abc[/adlcp:datafrom]
[adlcp:mast]80[/adlcp:mast]
という「:」で区切られたタグがありました。この要素中のabcや80といった内容
を抽出したく思っています。
この場合、[A:B]のAとBはそれぞれ何という文法名称を持っているのしょうか?
(Aは単に要素?)
※書き込みCGIの都合上、タグ記号を<>→[ ]にしています。
[adlcp:datafrom]abc[/adlcp:datafrom]
[adlcp:mast]80[/adlcp:mast]
という「:」で区切られたタグがありました。この要素中のabcや80といった内容
を抽出したく思っています。
この場合、[A:B]のAとBはそれぞれ何という文法名称を持っているのしょうか?
(Aは単に要素?)
※書き込みCGIの都合上、タグ記号を<>→[ ]にしています。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★11 [蚤の市★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 【沖縄】開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 [ぐれ★]
- クズ「勉強頑張らなかった奴は一生DQNと一緒に肉体労働しろ」☚勉強頑張れるのも環境と巡り合わせなんだが? [783475554]
- 正直教師が授業する必要なくね?
- インド料理屋に抗議に行った
- 【正論】検察「山上よ、どんな事情があろうと暴力が許されない」 [442080748]
- 熱はないけど倦怠感があるんやが
- スマホゲ問い合わせ俺「ここでこんなことしたらバグった!」返答「アカウント情報と画面のスクショと操作手順をメールで送って」
