【XML】xmlns, XSLT, ..
280:デフォルトの名無しさん
06/06/28 01:24:22
「200万円以上の車は●台あります」 と表示させたいのですが
carsの中にpriceが200であるcarがひとつでも入っていたら全てをカウントしてしまうみたいで困っています
どうしたらいいのでしょうか?
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="URLリンク(www.w3.org)
<xsl:output method="html" encoding="Shift_JIS"/>
<!--文章-->
<xsl:template match="/">
<html>
<xsl:apply-templates select="cars"/>
</html>
</xsl:template>
<!-- 車 -->
<xsl:template match="cars">
200万円以上の車は
<xsl:if test="(car/price) > 200">
<xsl:value-of select="count(car)"/>
</xsl:if>
台あります。
</xsl:template>
281:デフォルトの名無しさん
06/06/28 01:27:04
XMLファイルはこれです。
この場合cars以下にprice200以上がひとつでも含まれていたら
台数が3台とカウントされてしまいます。
<?xml version="1.0" encoding="Shift_JIS" ?>
<!-- 作成日:2005年10月6日 -->
<!DOCTYPE cars SYSTEM "Sample1_DTD.dtd">
<cars>
<car>
<name>乗用車</name>
<price>150</price>
</car>
<car>
<name>トラック</name>
<price>500</price>
</car>
<car>
<name>オープンカー</name>
<price>200</price>
</car>
</cars>
282:デフォルトの名無しさん
06/06/28 01:56:36
>>280-281
確かめてないけど、これでどう?
<!-- 車 -->
<xsl:template match="cars">
200万円以上の車は
<xsl:value-of select="count(car[price >= 200])"/>
台あります。
</xsl:template>
283:282
06/06/28 02:08:26
「gt;=」で投稿したんだけど勝手に「>=」になってる。
(↑また置き換わるといけないので全角に)
逆向きのときもあるだろうから念のため・・・
284:デフォルトの名無しさん
06/06/28 04:59:35
&gt;
285:282
06/06/28 09:42:16
>>284
ん?と思ったけど、なるほど。
一応もう一回書き直し。
<!-- 車 -->
<xsl:template match="cars">
200万円以上の車は
<xsl:value-of select="count(car[price >= 200])"/>
台あります。
</xsl:template>
#284は&amp;gt;と書いて投稿して&gt;となってるわけか
#ややこしいね
286:280
06/06/28 23:30:04
ありがとうございます。
無事正しく2台と表示させることが出来ました
287:デフォルトの名無しさん
06/06/29 00:56:21
xsl:keyって使います?
行き当たりばったりの酷いソースの修正でもない限り使う場面はないような。。。
ピンポイントで引っ張らなくてもXSLならいくらでも取り出すチャンスがあると思うの。
288:デフォルトの名無しさん
06/06/29 01:39:07
>287
xsl:keyは、XMIファイルのparsingの前処理として、idrefを解決するために使った。
289:デフォルトの名無しさん
06/07/09 15:23:16
<xsl:output method="html" encoding="Shift_JIS"/>
<!--文章-->
<xsl:template match="/">
<html>
<xsl:apply-templates select="cars"/>
</html>
</xsl:template>
<!-- 車リスト -->
<xsl:template match="car">
<body>
<xsl:apply-templates select="car"/>
</body>
</xsl:template>
<!-- 車 -->
<xsl:template match="cars">
<div>
<xsl:apply-templates select="name"/>
<xsl:apply-templates select="price"/>
</div>
</xsl:template>
<!-- 品名 -->
<xsl:template match="name">
<xsl:copy-of select="."/>
</xsl:template>
<!-- 価格 -->
<xsl:template match="price">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
上記のxslファイルで「2台目以降のcar要素」を、<xsl:if >を使って
抽出したいのですがどうすればいいのでしょうか?
290:デフォルトの名無しさん
06/07/09 15:40:30
なんかソースがおかしい気がして俺の頭じゃ変換結果が見えないが
position関数を使えばいいよ。
291:デフォルトの名無しさん
06/07/09 19:29:23
たぶんカーズという映画のカース(呪い)なんだろう
292:デフォルトの名無しさん
06/07/09 19:56:36
<xsl:output method="html" encoding="Shift_JIS"/>
<!--文章-->
<xsl:template match="/">
<html>
<xsl:apply-templates select="cars"/>
</html>
</xsl:template>
<!-- 車リスト -->
<xsl:template match="cars">
<body>
<xsl:apply-templates select="car"/>
</body>
</xsl:template>
<!-- 車 -->
<xsl:template match="car">
<div>
<xsl:apply-templates select="name"/>
<xsl:apply-templates select="price"/>
</div>
</xsl:template>
</xsl:stylesheet>
とりあえずこれで全てのcarを表示できますが
挿入するのは
<xsl:if car[position() &gt;= 2]>
であってるんでしょうか?
いろいろな場所で入れてみましたがうまく表示されません
293:デフォルトの名無しさん
06/07/09 20:11:36
>>292
何食わぬ顔してさっきとソースが違うじゃねーかw
<xsl:apply-templates select="car[position() > 1]"/>
294:デフォルトの名無しさん
06/07/14 11:23:56
VB.NET2003でXMLをインデント付きでファイルに出力したいのですがどのようなやり方がありますでしょうか?
XMLはDOMになってます。
295:デフォルトの名無しさん
06/07/14 12:21:16
フォーマットを扱うインタフェースがフォーマットに下克上か。
296:デフォルトの名無しさん
06/07/15 01:44:57
一刀両断
297:デフォルトの名無しさん
06/07/31 23:28:00
hosyu
298:デフォルトの名無しさん
06/08/01 07:12:14
一般的なインデントってのを
なんでもいいから誰か決めてほしい
目が慣れない
299:デフォルトの名無しさん
06/08/06 14:25:06
ShaniXMLParserってどうよ?
URLリンク(journal.mycom.co.jp)
300:デフォルトの名無しさん
06/08/10 21:31:10
どっこいしょっと300げと
301:デフォルトの名無しさん
06/08/29 14:11:23
ちょっとまて、パーサはinvalidなXMLをパースしちゃいけない(MUST NOT)んじゃなかったっけ
302:デフォルトの名無しさん
06/09/02 20:40:20
語弊がある
303:デフォルトの名無しさん
06/09/10 01:31:53
inlineで処理する場合、属性を継承させたいのだが、
同じタグがネストすることに
問題はあるだろうか、パースはできるが。
<A attr1="true">XX<A attr2="true">YY</A>ZZ</A>
XXはattr1がtrue
YYはattr1とattr2がtrue
ZZはattr1がtrue
304:デフォルトの名無しさん
06/09/12 01:07:21
XML覚えたらどんな仕事に就けるんですか?
305:デフォルトの名無しさん
06/09/12 01:28:41
>>304
XMLを使う仕事に就ける可能性が有る
306:デフォルトの名無しさん
06/09/12 01:34:23
>>303
属性の継承自体はそのデータを扱うアプリ次第としか言いようが。
あとは、ループ可能なネスト構造なんて許容しちゃうと、あとで処理するのがめんどうだと思う…
>>304
XMLダケじゃなんにも
307:デフォルトの名無しさん
06/09/12 01:51:05
>>304
RDBMSの世界で例えるとXMLはテーブルにすぎない。
はっきりいってXML*だけ*知ってても糞の役にも立たない。
ちなみにXSLはRDBMSの世界でのSQLに相当する。
308:デフォルトの名無しさん
06/09/12 01:52:32
>>307
> ちなみにXSLはRDBMSの世界でのSQLに相当する。
ま、まじで?!XPointerとかだとおもってたぉ (;^ω^)
309:307
06/09/12 02:02:27
>>308
感覚でテキトーに吹いただけだから
厳密に捉えちゃいや〜んw
310:デフォルトの名無しさん
06/09/12 10:52:58
XQueryとか使ってる? Oracleは結構前から、最近DB2、あとさっぱり知らんが
T1とかEsterraだっけ? 使えるようだけど。
それで楽になったこととか、支障ない範囲で具体的に教えてくれると嬉しい。
311:デフォルトの名無しさん
06/09/12 15:11:10
>>307
outputがXMLなXSLTって言ってほしかったなあ。
SELECT文もテーブルを生成するように、
XSLTもXMLを生成するという意味では似ている。
>>310
多分ほとんどの業務系でOracleのXMLとかの機能使われて無い(´・ω・`)
312:デフォルトの名無しさん
06/09/12 17:41:49
SQLはXPathだ!
313:デフォルトの名無しさん
06/09/12 19:10:40
SQLに相当するのはXQueryかXPathだと思うお。
XQuery使ったこと無いけど…
314:デフォルトの名無しさん
06/09/12 21:38:31
JavaでXML操作する方法勉強したいんですが良書はありますか?
オライリーのJava&XML第2版2002年発行なんですがこの内容はもう古いんでしょうか?
315:デフォルトの名無しさん
06/09/13 11:40:10
>>311,313
やっぱそうなんかねえ。ありがとう。
>>314
あんまり最近の本読んでないけど(いかんなあ)、Java と書いて無くても
XML と書いてある本って大体 Java 使ってる場合が多い気がする。
特に DOM 操作あたりとか。たまーに Javascript とかも見た気がするけど。
読んだことありませんし何となく叩かれそうな売れ線の本に見えるけど
URLリンク(www.pro.or.jp)
見ると Java 入門 + XML みたいなこと書かれてますね。
316:デフォルトの名無しさん
06/09/13 20:47:23
>>315
ありがとうございます。XMLの本も見てみます。
その本は第1版持ってるんですがAPIが古くて本のとおりような記憶が・・・
317:デフォルトの名無しさん
06/09/30 23:45:31
XSLTをHTML整形以外に使ってる実例ってある?
318:デフォルトの名無しさん
06/09/30 23:47:59
なんかSNMPの方でXML-SNMPとかいうのがあるらしい
319:デフォルトの名無しさん
06/10/01 00:02:14
ネットワーク監視せんからそのプロトコルが何をするものか知らないけど
いちおう使われてるんだなと思うと嬉しいね。
320:デフォルトの名無しさん
06/10/01 00:14:36
>>317
GRDDLとか
321:デフォルトの名無しさん
06/10/01 01:45:10
>>317
たぶん、規格乱立で収拾のつかなくなったRSS(+ATOM)のバージョンの違いを
吸収するために各種RSSリーダーでXSLTが利用されているハズ。
322:デフォルトの名無しさん
06/10/01 13:45:36
そうでもない
323:デフォルトの名無しさん
06/10/01 17:27:12
>>322
じゃぁどうやってんの?
XSLTでRSSのバージョンの違いを吸収させずに他の方法使うなんてアホとしか思えんのだが。
俺が知らないだけでもっといい方法でもあんのか?
あ、サーバサイドのプログラムだと重いXSLTを使うわけにはいかんかったりするか。
それでもクライアントサイドでやる場合は確実にXSLTだろ〜
324:デフォルトの名無しさん
06/10/01 17:57:43
話の流れぶった切るけど
mozilla系列のxul 面白いよね
豪快にrdf使ってプチrdbとかも最高
325:デフォルトの名無しさん
06/10/02 16:42:21
XSLTぐらいで吸収できるのかな?
326:デフォルトの名無しさん
06/10/02 19:30:03
>>325
お前では無理かもしれんが、フツーにできる。
というか、ここで使わないでどこでXSLTを使うんだよってくらいキまる。
327:デフォルトの名無しさん
06/10/02 21:19:23
詰まらん煽りいれる奴の肩もつ気はないが
XSLTの表現力は、その印象ほど貧弱じゃないよ。
328:デフォルトの名無しさん
06/10/03 02:47:17
わざわざXSLTに分離する意義があるかどうかは別だけどね。
329:デフォルトの名無しさん
06/10/03 03:04:42
>>328
日本語でおk
330:325
06/10/03 10:14:43
>>327
いや、俺がXSLT使いまくった経験で言わせてもらってるよ。
ほかのフォーマットとやらには詳しくないんだ。すまない。
>>328
うん。そう思う。
XSLTは存在としては面白いけど、利点はすぐに書き換えられることぐらい…。
使う言語としてはいろいろ面倒すぎるだろう…。
あんまり存在意義がわからない。
331:デフォルトの名無しさん
06/10/03 19:35:51
>>330
>利点はすぐに書き換えられることぐらい…。
ぐらい...って、おまい、それ、チョー重要だぞ。
すぐに書き換えられるってことはそもそも最初バージョンを書き起こすのも楽ってことだし、
デバッグもメンテナンスも楽ってことだぞ。
332:デフォルトの名無しさん
06/10/03 19:37:38
大幅賛成だけど、
つ 諸刃の刃
ソースコードだって直ぐ書き直せるし、interfaceだってプログラマの意思で書き換えることができる
便利だけど怖い
333:デフォルトの名無しさん
06/10/03 23:15:46
流れぶった切ってすみません。
URLリンク(www.xmlmaster.org)
にあるITunesのXMLをHTMLに変換するXSLTに手を加えて
アーティスト名でソートしようと思い、
<xsl:for-each select="plist/dict/dict/dict">
の下に
<xsl:sort select="key[text()='Artist']" data-type="text" order="descending" lang="ja" />
と加えてみたのですが、ソートされません。
ただ漠然とxsl:sort select=の指定(ロケーションパス?)が誤っている気がするのですが、
具体的にどうすれば良いのかがわかりません。
どなたかご教示いただけませんか。
334:デフォルトの名無しさん
06/10/04 15:51:03
string[preceding-sibling::key = 'Artist']
335:333
06/10/04 19:48:54
>334
ありがとうございます。目的は達成できました。
コンテキストノードの前の兄弟ノードでkeyがArtistの
stringを指定している?
答えを頂いてもよく理解できてません。もっと勉強します。
336:デフォルトの名無しさん
06/10/04 20:30:44
とうとうProperty Listが「ITunesのXML」なんて呼ばれる時代がきたのか。
337:デフォルトの名無しさん
06/10/07 21:41:45
ライブラリのマニュアルをRDFとDublinCoreで記述しようと思うんだけど、
どんな構造にしたらいいのかよくわからないからどうか教えてくれないか?
言語はCとC++でヘッダファイルごとに分けようと思っている。
338:デフォルトの名無しさん
06/10/09 11:19:14
質問です。
XML自体には、フラグメント識別子の扱いに関する定義はないと考えて良いのでしょうか?
339:デフォルトの名無しさん
06/10/09 22:16:57
>>338
DTDで定義するが、それだと不便なので、
xml:idが勧告されている。
340:デフォルトの名無しさん
06/10/10 00:38:08
>>339
どうもです。
341:デフォルトの名無しさん
06/10/10 22:07:45
ODFの仕様書邦訳ってない?
342:デフォルトの名無しさん
06/10/11 09:49:51
Javaとかで、XMLの構造を単純なコレクションに吐き出すAPIって無いもんでしょうか?
InputStreamやStringそのままとかDocumentFragmentとかでなしに。
何がしたいかというと、外枠の仕様だけ決めておいて、
中にメタデータをボキャブラリを問わず格納できるようにしたいのですが、
外枠だけを管理するライブラリとしては、中のメタデータには触らずに、
それを処理できるほかのライブラリに処理を渡すといったことができないかと。
343:デフォルトの名無しさん
06/10/11 12:30:43
Digesterは?
344:デフォルトの名無しさん
06/10/11 21:42:50
よさそげですね、使ってみます。
345:デフォルトの名無しさん
06/10/11 23:01:08
Digesterの後継たるBetwixtはいつリリース版になるのかねぇ
346:デフォルトの名無しさん
06/10/17 03:57:45
Digesterのpluginパッケージを使った事ある方っていますか?
347:デフォルトの名無しさん
06/10/19 20:51:32
>>14
LISPってS式だと思ってるの?
348:デフォルトの名無しさん
06/10/30 17:47:27
XSL-FOをつかって
XMLからPDFを作ったりできるんだよね?
Office2007からはXMLを使うみたいだから
XSL-FOと組み合わればPDFつくれるんちゃう?
349:デフォルトの名無しさん
06/10/31 08:35:52
OfficeがXML使うとか一体何度聞いたことか
350:デフォルトの名無しさん
06/10/31 12:31:32
Office2003でもXML形式はサポートしてるぞ。
Office2007ではそれを(確かZIPで)圧縮した形式がデフォルトになるだけ。
351:デフォルトの名無しさん
06/11/01 00:57:56
XMLのスキーマ?は違うものになるんじゃないの?
352:デフォルトの名無しさん
06/11/01 01:56:21
>>351
そうかも。詳しくは知らないけど、確かそのZIPにはドキュメントに埋め込んだ
画像やらがフツーの画像ファイルの形式で保存されててその画像ファイルだけ
そこらの画像編集ソフトで開いて編集したりとかってこともできるようになるらしいね。
353:デフォルトの名無しさん
06/11/01 23:17:52
そういやVistaはファイル形式の一つにパッケージを採用するんだっけ?
354:デフォルトの名無しさん
06/11/07 16:43:11
浅海智晴事務所って消えたんでしょうか。
Relaxer、もう終わりなんかなあ。好きなのに。
355:デフォルトの名無しさん
06/11/08 05:41:50
>>354
Relaxerはどうか知らんが、URLリンク(www.xmlsmartdoc.org)は終わってるようだ。
356:デフォルトの名無しさん
06/11/08 10:53:35
XMLラベリング手法の「Dewey Order」ってどう読むの?
カタカナで全然書いてなくて分からん
357:デフォルトの名無しさん
06/11/11 00:29:44
dewey decimal classification〜♪
358:デフォルトの名無しさん
06/11/11 01:04:23
>>354
バグ修正だけど、Relaxer更新されたみたいだな。
359:デフォルトの名無しさん
06/11/12 04:17:39
XMLを勉強しようと思った。
サンプルファイルを開いて意気込んだ。
2,3回開いて、IE、explorer.exeが落ちた。
,.――-、
ヽ / ̄ ̄ ̄`ヽ、 勇者トンファーパーマン惨状
| | (・)。(・)|
| |@_,.--、_,> 俺が着たからにはもう色々と駄目だ
ヽヽ___ノ
/:::::::::::::::::l /77
/::::::::::i:i:::::::i,../ / |
l:::/::::::::i:i:::、:::/ / |
l;;ノ:::::::::::::::l l;.,.,.! |
/::::::::::::::::l/ / 冂
/:::::::;へ:::::::l~ |ヌ|
/:::::/´ ヽ:::l .|ヌ|
.〔:::::l l:::l 凵
ヽ;;;> \;;>
360:デフォルトの名無しさん
06/11/12 20:36:16
XMLの勉強を始めたばかりの初心者なのです.
私が作成したXMLファイルのエラーをチェックするために
コマンドプロンプトから
java dom.Counter (XMLファイル)
という風にやっているのですが、次のようなエラーが出てしまいます。
[Fatal Error] :-1:-1: Premature end of file.
開始タグと閉じタグが一致してないのが原因なのかとソースを何回も
チェックしましたが、そのような記述ミスはありません。
他に原因として考えられること、またはこのエラーの指す意味が
お分かりでしたら教えていただけませんか?
よろしくお願いします。
361:デフォルトの名無しさん
06/11/13 12:20:41
エンコーディングに問題がないか、
XMLの記述に本当に問題がないかを調べる。
パーサによっては utf-8 でも BOM ついてると弾くとか、いろいろだよ。
362:デフォルトの名無しさん
06/11/13 12:34:25
BOMはまじで引っかかるね。
あると怒るやつ、ないと怒るやつ… 狂ってるとしか思えない。
363:デフォルトの名無しさん
06/11/13 14:14:23
BOMが狂ってるのは確か。
そんなに必要だったら必須にすりゃ良いのに
あったりなかったりとか、もう何考えてるのか。
364:デフォルトの名無しさん
06/11/14 01:27:36
UTF-8の文字列はBOMガないのが正しいはず。
365:デフォルトの名無しさん
06/11/14 06:19:58
OfficeがXMLでデータ保存するようになると、
データをCVSで管理できるようになるってのがいいな。
366:デフォルトの名無しさん
06/11/14 06:46:23
<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>
<hoge>ほげほげ</hoge>
というファイルを、
.load パス
.loadxml .xml
.save パス
すると、
<?xml version="1.0" standalone="yes"?>
<hoge>ほげほげ</hoge>
になってしまいます。encodingが変わってしまう理由と
loadxmlを使っても、encodingが保持される方法について教えてください。
(実際には上記例のように、単純に読み直して保存するだけではありません)
WSHからMSXML2.DOMDocumentを利用しています。
367:デフォルトの名無しさん
06/11/14 08:37:31
MSXMLのxsltプロセッサではJavaによる拡張は可能ですか?
368:デフォルトの名無しさん
06/11/16 01:18:57
>>367
ActiveScriptか.NETを使える。
beansとして作って、ActiveX化すれば可能なんじゃね?
素直には無理。
369:デフォルトの名無しさん
06/11/16 11:56:45
Cなどでいうdefineのようなものはありませんか?
設定ファイルの動作を切り替えたいんだけどコメントアウトの修正だとまんどくさいです。
370:デフォルトの名無しさん
06/11/16 12:37:41
ありますよ。
DTDを解釈するパーザなら使える。
371:デフォルトの名無しさん
06/12/07 22:43:42
XMLSchemaでDTDのENTITYみたいな実体参照を表現するには、どう書けばいいんでしょうか。
DTDのENTITYだけ使おうかとも思ったんですが、うまくいきませんでした。
372:デフォルトの名無しさん
06/12/17 19:42:10
Schema知らないからわかんね。
373:デフォルトの名無しさん
06/12/17 23:11:36
巨大なXMLテキストを、XPATHで高速に検索して引っ張ってくれるオープンソースな
XMLデータベースってありませんか?
Javaは重いのでできれば遠慮したい、データ本体は静的でReadOnly可、事前にインデックス
作成も可、という条件で。
374:デフォルトの名無しさん
06/12/18 22:58:28
別に、最近のJavaは気にするほど重くはないと思うけどな。
375:デフォルトの名無しさん
06/12/18 23:23:24
メモリ大量に食うから仮想メモリのスワップや強制GCが発生して結局重くなる
演算とかの速度は速いと思うんだけどね
376:デフォルトの名無しさん
06/12/19 01:15:00
>>375
仮想メモリのスワップとかJavaに限った話じゃないような・・・
GCもスカベンジならそれほどコスト高くないし。
あとは、フルGCをなるべく発生させないようにチューニングとか。
すれ違いスマソ
377:デフォルトの名無しさん
06/12/19 01:39:12
巨大なXMLならXMLDB使うしかないんじゃない?
オプソでもxindiceだっけ?いくつかあるんじゃない?
378:デフォルトの名無しさん
06/12/19 18:35:13
>>376
JavaVMのメモリ使用量がでかいから他よりスワップがおきやすい。
379:デフォルトの名無しさん
06/12/19 22:14:16
まぁ、それは理屈だが。
380:デフォルトの名無しさん
06/12/19 22:25:05
URLリンク(www.excite.co.jp)
381:デフォルトの名無しさん
06/12/22 23:45:16
XMLから脱線しまくりな気もするが
JavaDBは速い奴は無駄に速いぞ。H2はMySQLより速いというくらいだ。
382:デフォルトの名無しさん
06/12/23 00:27:55
ほぅ…それは凄い。
出来ればソースが欲しいけど、自分で探しにいく。
383:デフォルトの名無しさん
06/12/24 06:48:10
XHTMLをXSLで変換したいのですが、次のような文書からtitleを抜き出すことが
できないでいます。
この場合、XSLをどのように書けばいいのでしょうか?
XSLTプロセッサはJava6SEに標準でついているものを使用しています。
□htmlファイル(これを修正することはできない)
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"URLリンク(www.w3.org)
<html xmlns="URLリンク(www.w3.org)
<head>
<title>ほげ</title>
</head>
<body>
</body>
</html>
□xslファイル(これがうまくいかない)
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="2.0" xmlns:xsl="URLリンク(www.w3.org)
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:template match="/">
<result>
<title>
<xsl:apply-templates select="html/head"/>
</data>
</result>
</xsl:template>
<xsl:template match="html/head">
<xsl:copy-of select="title"/>
</xsl:template>
</xsl:stylesheet>
384:383
06/12/24 06:51:36
すいません、XSLの修正です。
□xslファイル(これがうまくいかない)
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="2.0" xmlns:xsl="URLリンク(www.w3.org)
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:template match="/">
<result>
<title>
<xsl:apply-templates select="html/head"/>
</title>
</result>
</xsl:template>
<xsl:template match="html/head">
<xsl:copy-of select="title"/>
</xsl:template>
</xsl:stylesheet>
385:デフォルトの名無しさん
07/01/03 23:47:14
URLリンク(d.hatena.ne.jp)
こういうの見るとXSLTがいかにキチガイじみているかわかる。
スゲーとは思うけど。
386:デフォルトの名無しさん
07/01/04 01:36:43
>>385
別にその程度じゃそんなにキチガイじみてるとは思わんが。
てか、XSLTはもっといろんなことができる。
データ入力まわりの問題をうまく解消しないまま途中でほったらかしにしちゃったけど
XSLTでタスク管理のツールを作ったこととかあるぞ。ちゃんとタスクの親子関係に
基づいてツリー表示もできるヤツ。同じデータをいろんな組み合わせ or いろんな見せ方を
したい場合に XSLT はとっても重宝する。
387:デフォルトの名無しさん
07/01/04 08:39:30
なんか普通にコード書いたほうが早そうだな・・・
388:デフォルトの名無しさん
07/01/09 11:54:30
もっとシンプルなテンプレート言語使って、
複数テンプレート用意する方を俺は選ぶ。
あるいは XML 丸投げして、
クライアント側で勝手に描画してください形式にする。
XLST の方が素晴らしいケースってどんな場合?
389:デフォルトの名無しさん
07/01/13 02:46:50
XMLはD言語みたいなネストできるコメントが欲しい
390:デフォルトの名無しさん
07/01/13 05:28:39
>>389
同感
あとCDATAセクションもどうにかしてほしかった
391:デフォルトの名無しさん
07/01/13 08:27:32
>>388
>>385の人も言ってるように形式的な変換なら、XSLTで一発の方がいいかな。
間にいろいろ挟みたくない場合は少なくないし。
他の言語でも変換は出来ると言われたら確かにそうだけど
392:デフォルトの名無しさん
07/01/13 12:30:47
>>388
>もっとシンプルなテンプレート言語
ちなみに今何を使ってる?
393:デフォルトの名無しさん
07/01/15 16:23:27
>>392
velocity 使ってます(java)。
利点は構文がシンプルなのと、
変数は #var の形式だから < > で囲う系と比べて
ブラウザでの確認がしやすい点。
難点はホワイトスペースが意味を持つ場合、
改行その他が表示されないように工夫する必要があって
かえって読みにくくなる点。
テンプレート言語ではないけど e4x も重宝してます。
394:デフォルトの名無しさん
07/01/15 22:42:16
>>391
ちょっと本筋から外れるが、「形式的定義」の意味を間違えてないか?
中の人はこういう感じの意味で言ってると思う。
URLリンク(www.chimaira.org)
395:デフォルトの名無しさん
07/01/24 20:10:15
SAXにおいてスキーマはどのような位置づけになるのでしょうか?
DOMの場合は解析を終えた状態ですが、SAXはインタプリタですよね?
396:デフォルトの名無しさん
07/01/24 22:49:13
XSLTを使って
<A>
foo
<B>
<C> bar </C>
<D> baz </D>
</B>
qux
<B>
<C> hoge </C>
<D> fuga </D>
</B>
piyo
</A>
から<A>foo bar qux hoge piyo</A>
を抜き出したいんですが、どう書けばいいのでしょうか?
397:デフォルトの名無しさん
07/01/24 22:59:46
>>393
ども。velocityはちょっといじって投げちゃってた。
398:デフォルトの名無しさん
07/01/24 23:26:24
>396
xsl:value-of はテキストノードだけ残るんでは。
399:396
07/01/25 00:52:59
>>398
<xsl:template match="/">
<xsl:apply-templates select="A"/>
</xsl:template>
<xsl:template match="A">
<xsl:copy>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
という感じで書いてみたんですが、Aの子ノードの内容を全部取ってくるので、
必要ないbazやfugaが入ってしまいます。
400:デフォルトの名無しさん
07/01/25 01:56:54
質問があります。 Xalan-C 1.10 を使っています。
入力として以下のような XML があります。
<?xml version="1.0" ?>
<article>
<title>プログラム技術板について</title>
ここの板の住人はとても親切です。
<photo file="hiroyuki.png" />
こんな人にも親切に質問に答えてくれます。きっと。
</article>
これを整形して
<html>
<head><title>プログラム技術板について</title></head>
<body>ここの板の住人はとても親切です。<img src="hiroyuki.png" />こんな人にも親切に質問に答えてくれます。きっと。</body>
</html>
こういう出力を得たいのですが上手くいきません。
具体的には間に別のノードが挟まったテキストノードの扱い方がわかりません。
〜続きます〜
401:400
07/01/25 01:58:41
〜続きです〜 以下のように書いてみたのですが、テキストと区切りが別々になってしまいます。
<?xml version="1.0" encoding="Shift_JIS" ?><xsl:stylesheet xmlns:xsl="URLリンク(www.w3.org) version="1.0">
<xsl:output method="xml" encoding="utf-8" /><xsl:template match="/"><xsl:apply-templates /></xsl:template>
<xsl:template match="article">
<xsl:element name="html">
<xsl:element name="head">
<xsl:element name="title">
<xsl:value-of select="title" />
</xsl:element>
</xsl:element>
<xsl:element name="body">
<xsl:for-each select="../*">
<xsl:apply-templates select="text()"/>
<xsl:apply-templates select="photo"/>
</xsl:for-each>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="photo">
<xsl:element name="img">
<xsl:attribute name="src">
<xsl:value-of select="@file" />
</xsl:attribute>
</xsl:element>
</xsl:template>
</xsl:stylesheet> 〜続きます〜
402:400
07/01/25 01:59:28
〜続きです〜
text() と photo を別々に apply している部分を * にすると欲しいテキストが処理されず、代わりに title の中身のテキストを拾ってきてしまうようです。
このような場合、どう記述すればよいでしょうか?
宜しくお願い致します。
403:デフォルトの名無しさん
07/01/25 13:11:15
>>395
なんか認識を間違えてる気がする。DOMだろうとSAXだろうとStAXだろうとパース手法とデータの扱い方の違いの問題だろうな。
>SAXにおいてスキーマはどのような位置づけになるのでしょうか?
多分欲しい回答は自分で文書型をパースしてそれにしたがってバリデートするって言って欲しいんだろう。
>DOMの場合は解析を終えた状態ですが、
それは内部で既にパース済みだからだよ。既にパース結果をDOMインターフェイスから扱える形になってる。
>SAXはインタプリタですよね?
そこまで高度なものじゃなくてポピュラーなXML APIは全て字句解析機。
トークナイズしてトークンをハンドラにディスパッチする事によってデータを扱う。
SAXの場合はハンドるした生のデータをプログラマが扱うがDOMの場合はDOMインターフェイスから扱えるように加工されたデータを扱う。
SAXの場合はトークナイズしてディスパッチした時点でデータを破棄するがDOMは
"後で"扱うために保持するのでデータの持ち方をどうするかという観点からも加工されている。
データの持ち方までDOMは関与しないからどう持つかは実装次第で必ずツリーかは別だけどな。
多分>>395はPLインタプリタやコンパイラみたいな物を想像しててSAXがインタプリタと言ったんだろうな。
そこまで複雑なものじゃないよ。その中の字句解析機に当たる。
その次の構文解析と意味解析辺りがバリデータと言えるか。
XMLパーサはフレームワークとかじゃなくてただのレイヤーだ。
何やっててスキーマは〜って思ったんだ?何をしたいのか聞いた方が早いと思う。
自力でパーサ実装した事ないだろ?
404:デフォルトの名無しさん
07/01/26 01:47:23
>>400
元のXMLの構造を見直したら?
<article>
<title>プログラム技術板について</title>
<body>ここの板の住人はとても親切です。</body>
<photo file="hiroyuki.png">こんな人にも親切に質問に答えてくれます。きっと。</photo>
</article>
とかさぁ。
405:デフォルトの名無しさん
07/01/29 11:39:14
複数ある項目に対してCGIを呼び出すボタンをつけるというのを
XML+XSLTでやろうと思っているのですが
サンプルページなどを見ると、
表示するだけで項目の編集などをやっていません
項目ごとにCGIなり編集なりを行いたい場合
どのようにするのが一般的でしょうか?
406:デフォルトの名無しさん
07/01/30 20:59:04
>>400
> <xsl:for-each select="../*">
> <xsl:apply-templates select="text()"/>
> <xsl:apply-templates select="photo"/>
> </xsl:for-each>
もう見てないかもしれないけど、一応。
上の4行を<xsl:apply-templates select="text()|photo"/>の1行だけに書き換えればいい。
もし余計なスペースと改行が邪魔なら
> <xsl:value-of select="."/>
を<xsl:value-of select="normalize_space(.)"/>にでもするといいよ。
>>405
<form>と<input>でボタンをつければいいだけでは?
407:デフォルトの名無しさん
07/02/02 14:53:40
XFormsでRDFを生成したいんですけど、
namespaceのところでおかしくなるんです。
仕様で無理なのでしょうか?
ちなみにFirefoxの拡張で試しています。
408:デフォルトの名無しさん
07/02/03 14:03:34
>>407
何も知らない俺からすれば
鉛筆でノートに図形を描きたいんですけど、
指先のところでおかしくなるんです。
仕様で無理なのでしょうか?
ちなみに100¥ショップので試しています。
みたいにおもえた
409:デフォルトの名無しさん
07/02/03 14:18:48
>>407
>>408は煽ってるわけじゃないぞ。
もう少し問題の切り分けをしてみ?
410:407
07/02/04 05:17:55
すみませんでした。状況説明を補足します。
XFormsでRDFを生成したいのですが、インスタンスに名前空間があると
例)
"RDF/Description/creator"というXPathで参照すると入力欄は出ず、
"rdf:RDF/rdf:Description/dc:creator"というXPathで参照すると入力欄は出るけれども
エラー: XForms Error (15): Could not bind control to instance data と怒られてしまいます。
XFormsで生成したXMLには、インスタンスで指定した名前空間接頭辞の設定が消えてしまうのですが、
そこが問題なのでしょうか?
解決策をご教授いただければ幸いです。
411:デフォルトの名無しさん
07/02/05 15:47:18
>>406
XSLTを切り替えたいのでASP.NETを使って
FormとInputでやってみたのですが
xsl:elementとxsl:attributeでinputタグを書くと
終了タグが閉じないinputタグが生成されたり
ASP.NET用のformタグ内で宣言すると
Validateエラーが出たりとなかなか上手くいきません。
asp.netなんて使うなって話ではあるんですが・・・
412:デフォルトの名無しさん
07/02/21 11:12:47
Microsoft MSXML6SP1 (WindowsVistaに同梱)
URLリンク(www.microsoft.com)
Microsoft XML Notepad 2007
URLリンク(www.microsoft.com)
413:今日の日記
07/03/15 04:20:42
「XMLマスター教科書 ベーシックV2」という参考書で、
参考書の間違いに気づいた俺に感動した。
参考書だだ暗記癖が抜けてきたよい傾向と受け止めよう。
414:デフォルトの名無しさん
07/03/15 09:59:38
xmlとhtmlの本て嘘ばっかだぞ。仕様書嫁って言いたくなる。
教本じゃなくて紙媒体の参考書が欲しいだけの人間にはこういうのは困る。
415:デフォルトの名無しさん
07/03/15 20:25:39
古いアプリ(改訂)で売られてることが多いから、
正誤表(パッチ)で上書きしてから使うのが大切ってこったね。
416:デフォルトの名無しさん
07/03/15 20:26:18
()の中と外があべこべになっちゃった。恥ず。
417:デフォルトの名無しさん
07/03/17 19:58:15
XML Schemaは結構強力だな
うちもC、Java、VB(VBA)と手広い環境でやってるんで
XMLの導入を勧めたいところだ。
418:デフォルトの名無しさん
07/03/17 21:41:10
スキーマ書くよさげなツールある?
ヒューマンフレンドリーな方法で編集したいんだが
419:デフォルトの名無しさん
07/03/17 22:06:38
>>417
あんまり高度な書き方すると読む側が大変だから程ほどにね。
420:デフォルトの名無しさん
07/03/18 01:22:59
>>417
WXSは強力すぎてそこら辺の要件には一致しないし、仕様がでか過ぎて実装も困難なんだけどねw
421:デフォルトの名無しさん
07/03/18 01:34:48
>>418
Altova XMLSpyがおすすめ。
>>420
実装するのは俺じゃないしナー。
世の中の対応もだいぶ進んできた。Eclipse WTPの
XMLエディタはおすすめ。ばりばり補完してくれる。
422:デフォルトの名無しさん
07/03/18 05:59:36
>>421
スキーマバリデータ書いてみ?死ねるw
文法が可変の言語インタプリタ書いてるみたい。
DTD→RELEXNG→WXSの順に仕様がでかくなるんでDTDじゃ物足らず、WXSじゃでか過ぎるって場合が良くある。
RELEXNGは両端の架け橋として良く出来てる。
423:デフォルトの名無しさん
07/03/18 10:17:00
Schemaじゃでかすぎるって印象は無いな
complexTypeひとつにrestriction施したsimpleTypeを項目数分書くとかで十分だ
424:デフォルトの名無しさん
07/03/18 14:29:28
>>422
バリデータとか書く側ならともかく、フツーに使う側からしてみりゃ
別に仕様が大きすぎて困ることはないけどね。
425:デフォルトの名無しさん
07/03/18 19:58:26
既存のバリデータの実装に不具合が多かったりするんじゃないかとか。
URLリンク(www.horobi.com)
> このあたりは XML Schema ワーキンググループのメンバーが開発した
> XSV でさえ、部分的にしかサポートしていないんだ。
みたいな。
まあ、安全そうな機能だけ使っておけばよいのだろうけれど。
426:デフォルトの名無しさん
07/03/19 02:44:40
XSLTでtext要素のトリム(前後の空白文字の削除)
とかするにはどうするの
427:デフォルトの名無しさん
07/03/19 14:20:13
途中の連続した空白が1個になっていいなら normalize-space
428:デフォルトの名無しさん
07/03/19 21:00:00
ありがとー
429:デフォルトの名無しさん
07/03/21 09:09:33
ちょっとvipperが尋ねるお?
今、XMLをメタモデル化してそのモデルに自由にアクセス出来るライブラリ作ってんだけど総称符号化について日本語で読める文書知らない?論文でも良いんだけど・・・。
もう一つ、XML::Twingのようなハイブリッドパーサの実装他に知らない?
一応仕様だけは完成したけど煮詰めたくて、けどやってる事がメタ過ぎて参考になる資料がなくて困ってる。
当方オライリーの入門XML2版だけある。
#簡単に言うとXMLに対してランダムアクセスと順次・逆順次アクセスが自由に可能になる。
但しアクセスのみに焦点を置いてるので生成機能はない。
実装してる人間からすればプログラミング単位がメタ過ぎて発狂する・・・
430:デフォルトの名無しさん
07/04/10 22:35:44
う
431:デフォルトの名無しさん
07/04/10 22:41:17
XMLで質問なのですが、よろしくお願致します。
<?xml version="1.0"encoding="shift_JIS"standalone="yes"?>
<books>
<book isbn = "ISBN4-7980-0137-6">
<name>今日から使えるAPS3.0サンプル集</name>
<author>Yoshinori.Yamada</author>
<category>ASP</category>
<price>2800</price>
<publish>昭和システム</publish>
<pDate>2003-08-05</pDate>
</book>
<book isbn = "ISBN4-7980-0095-7">
<name>今日から使えるXMLサンプル集</name>
<author>Nami Kakeya</author>
<category>XML</category>
<price>2800</price>
<publish>昭和システム</publish>
<pDate>2003-12-04</pDate>
</book>
<books/>
を実行すると、
432:デフォルトの名無しさん
07/04/10 22:42:59
スペース、タブ、および改行または疑問符 (?) が必要です。リソース 'file:///C:/Documents and Settings/aaa/XML/books.xml' の実行エラーです。ライン 1、位置 20
<?xml version="1.0"encoding="shift_JIS"standalone="yes"?>
-------------------^
とエラーが出てしまいます、何処がどう違うのか、
わからないのでご指摘お願い致します
433:デフォルトの名無しさん
07/04/10 22:44:47
"1.0"の後。encoding=の前。
434:デフォルトの名無しさん
07/04/10 22:46:53
スペース、タブ、および改行または疑問符 (?) が必要です。
4択問題だなw
435:デフォルトの名無しさん
07/04/10 23:04:27
2択だろ。
white space or ?
436:431
07/04/10 23:10:10
ごめんなさい、どうしても変わりません・・・・
訂正箇所を記述して頂けると幸いです。
直しても変わらないです
437:デフォルトの名無しさん
07/04/10 23:11:26
直してないから変わらないんです
438:431
07/04/10 23:22:04
<?xml version="1.0" encoding="shift_JIS"standalone="yes"?>
これでも、結果は同じです。
439:デフォルトの名無しさん
07/04/10 23:49:26
>>438
standaloneの前も
440:431
07/04/11 00:06:27
できました!!!ありがとうございました!!!
441:デフォルトの名無しさん
07/04/11 22:17:10
XML レ0・ク0・h・yg0M0~0[0・
XSL ケ0ソ0、0・ キ0・ネ0・O(uW0_0 XML eQ娚o0h・yg0M0~0[0・0 ィ0・・・劃kW0f0O0`0U0D00 [fーe] ワ0ソ0・・ッ0・テ0ッ0Y0・K00~0_0o0契g0・・vW0f0O0`0U0D00
--------------------------------------------------------------------------------
ニ0ュ0ケ0ネ0n0・ケ[k0!qケRj0eW[L0級d0K0・~0W0_00 ・ス0・ケ0 'file:///C:/Documents and Settings/Yousuke1/ヌ0ケ0ッ0ネ0テ0ラ0/XML/text.xml' n0歇L葵0・・g0Y00 ・、0・ 40MOn 8
name="
こんなエラーを起こしてしまうのですが、何処の箇所が違っているのでしょうか?
442:441
07/04/11 22:20:30
IEを使っています。
443:デフォルトの名無しさん
07/04/11 23:32:10
>>441
[表示(V)] - [エンコード(D)]
444:デフォルトの名無しさん
07/04/26 01:28:29
ソースXMLの一部だけ変更する、というのはXSLT向きでしょうか。
他は変えずに/x:abc/y:def@hoge の値だけを書き換えるとか、/x:abc/y:def/hoge にappendChildするとか。
出来ないことはないのかも知れませんが、上記の様なのにXSLTを使うのは適切でしょうか。
matchが、明示より*が強くて /x:abc/y:def だけ引っ掛けてあとはcopy-ofというのができず、悩んでいます。
priorityを明示すれば良いのかも知れませんが、それはまっとうな使い方でしょうか。
(*の方が強いのは理由があるのではないか、それに反するのではないか、と気にしています)
445:デフォルトの名無しさん
07/04/26 03:48:16
XMLで
DOMプログラミングの段階まで行きましたが
そこで、JavaSprictを使い、XMLの内容を
ダイアログを表示させるという事なのですが
ダイアログが、どうしても表示されなく
普通にHTML形式で普通に出力されてしまいます。
自分のソースに誤りがあるのかと思い
サンプルでやっても同じです。
因みにIEでXPのサービスパック2です。
ご助言、宜しくお願い致します。
446:デフォルトの名無しさん
07/04/26 08:56:47
拡張子がtxtとか。適当ですまん。
447:デフォルトの名無しさん
07/04/26 11:38:31
>>444
priorityは値が大きい方が優先だぞ。逆だ。
適切かどうかはほかの奴に任せる
448:445
07/04/26 18:48:03
やはり解決しません
449:デフォルトの名無しさん
07/04/26 18:53:26
>>448
あんたが何をして何ができないのかがわからんよ。
alert("XMLの内容"); じゃだめなの?
450:445
07/04/26 19:08:08
JavaSprictを使いダイアログの中にXMLの内容を出力さしたいのですが
それができません…サンプルからやってもです
451:デフォルトの名無しさん
07/04/26 19:10:56
Q. できません
A. 頭が悪いからです
としか答えようがないんだが
452:デフォルトの名無しさん
07/04/26 21:16:18
自分のやりたい事をだらだらと書くだけで実際に何をやってどうなったのか具体的な事が書かれてないからなぁ。
>Q. できません
>A. 頭が悪いからです
今のところ模範回答だよな・・・。
それにサンプルって何よ?
そもそも、ブラウザ実装のjavascriptでxml扱う場合はxmlの話じゃなくてブラウザのjavascriptのお話じゃないか?
板違いではなくて?
どうせ何処でも同じ事言われるんだが。
453:デフォルトの名無しさん
07/04/26 23:26:31
>444
そーゆー、XMLの構造を認識しなければいけないけど、やってること自体は大したこと無い、という領域こそ、XSLT でさくっと済ますべきところだと思う。
>447 も書いてるけど特定が厳しいルールほど優先度が高いから
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/x:abc/y:def/@hoge">
<xsl:attribute name="hoge">foo</xsl:attribute><!-- やりたいことに置き換える-->
</xsl:template>
で、いいんじゃねーの?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4879日前に更新/254 KB
担当:undef