【XML】xmlns, XSLT, RelaxNG, JAXP, etc.【総合】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/11/30(水) 01:08:08関連情報は、>>2-10位に適当に。
※RSSなどのWeb限定の話題は、Web板でどうぞ(XHTMLはローカルでも使うから可)。
前スレ? 【必須?】XML技術【使ってる?】
http://pc8.2ch.net/test/read.cgi/tech/1090253584/
0263デフォルトの名無しさん
2006/06/18(日) 12:44:050264デフォルトの名無しさん
2006/06/18(日) 12:47:16>>262が訊きたいのはそーゆーことではないような気がするんだが。
>>262
ソートのやり方自体はわかるんだよね?
0265262
2006/06/18(日) 14:04:42実際並べたいカラムというのは関数呼び出しをしているカラムなのです。
グループ化して其々をカウントするには他に方法が思いつかなかったのです。
下のような感じで「ここ」がソートできればいいんですが・・
<xsl:for-each selectほげ[not(id = preceding-sibling::ほげ)]">
<xsl:sort select="ここ" order="ascending" />
<xsl:variable name="ここ">
<xsl:call-template name="関数">
<xsl:with-param name="引数">
<xsl:value-of select="値"/>
</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$ここ"/>
</xsl:for-each>
0266デフォルトの名無しさん
2006/06/18(日) 22:23:55俺の場合、for-each のブロックを個別の xsl:template として外に出して
その xsl:template を呼び出す xsl:call-template の引数に中間結果を渡す。
イメージとしては同じ元データに対し二重にxsltをかけるようなもの。
ただ、今はどうか知らんが、以前試した時は msxml ぐらいでしかこの技は使えんかった。
0267デフォルトの名無しさん
2006/06/19(月) 09:55:40複合型で値の制限は出来ますか?
0268デフォルトの名無しさん
2006/06/19(月) 21:21:54わかりません!
0269デフォルトの名無しさん
2006/06/19(月) 21:41:53はいはいワロスワロスwww
<xsl:for-each select="a">
<xsl:sort select="b" order="decending" />
<xsl:if test="not(preceding-sibling::a[b = current()/b])">
<!-- あとはご自由にどうぞ -->
</xsl:if>
</xsl:for-each>
0270デフォルトの名無しさん
2006/06/19(月) 22:07:55やっぱりXMLSchema?
0271デフォルトの名無しさん
2006/06/19(月) 22:08:280272デフォルトの名無しさん
2006/06/19(月) 23:02:10XMLSchemaが一番難しそうなんだよなぁ・・・
勉強してきます
0273デフォルトの名無しさん
2006/06/19(月) 23:27:46お前馬鹿だろ?
0274デフォルトの名無しさん
2006/06/20(火) 00:04:40馬鹿でーす★ 何か問題あるのー?
0275デフォルトの名無しさん
2006/06/20(火) 17:26:190276デフォルトの名無しさん
2006/06/20(火) 20:38:150277デフォルトの名無しさん
2006/06/20(火) 20:46:110278デフォルトの名無しさん
2006/06/20(火) 22:45:070279デフォルトの名無しさん
2006/06/21(水) 00:16:450280デフォルトの名無しさん
2006/06/28(水) 01:24:22carsの中にpriceが200であるcarがひとつでも入っていたら全てをカウントしてしまうみたいで困っています
どうしたらいいのでしょうか?
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<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>
0281デフォルトの名無しさん
2006/06/28(水) 01:27:04この場合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>
0282デフォルトの名無しさん
2006/06/28(水) 01:56:36確かめてないけど、これでどう?
<!-- 車 -->
<xsl:template match="cars">
200万円以上の車は
<xsl:value-of select="count(car[price >= 200])"/>
台あります。
</xsl:template>
0283282
2006/06/28(水) 02:08:26(↑また置き換わるといけないので全角に)
逆向きのときもあるだろうから念のため・・・
0284デフォルトの名無しさん
2006/06/28(水) 04:59:350285282
2006/06/28(水) 09:42:16ん?と思ったけど、なるほど。
一応もう一回書き直し。
<!-- 車 -->
<xsl:template match="cars">
200万円以上の車は
<xsl:value-of select="count(car[price >= 200])"/>
台あります。
</xsl:template>
#284は&amp;gt;と書いて投稿して&gt;となってるわけか
#ややこしいね
0286280
2006/06/28(水) 23:30:04無事正しく2台と表示させることが出来ました
0287デフォルトの名無しさん
2006/06/29(木) 00:56:21行き当たりばったりの酷いソースの修正でもない限り使う場面はないような。。。
ピンポイントで引っ張らなくてもXSLならいくらでも取り出すチャンスがあると思うの。
0288デフォルトの名無しさん
2006/06/29(木) 01:39:07xsl:keyは、XMIファイルのparsingの前処理として、idrefを解決するために使った。
0289デフォルトの名無しさん
2006/07/09(日) 15:23:16<!--文章-->
<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 >を使って
抽出したいのですがどうすればいいのでしょうか?
0290デフォルトの名無しさん
2006/07/09(日) 15:40:30position関数を使えばいいよ。
0291デフォルトの名無しさん
2006/07/09(日) 19:29:230292デフォルトの名無しさん
2006/07/09(日) 19:56:36<!--文章-->
<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]>
であってるんでしょうか?
いろいろな場所で入れてみましたがうまく表示されません
0293デフォルトの名無しさん
2006/07/09(日) 20:11:36何食わぬ顔してさっきとソースが違うじゃねーかw
<xsl:apply-templates select="car[position() > 1]"/>
0294デフォルトの名無しさん
2006/07/14(金) 11:23:56XMLはDOMになってます。
0295デフォルトの名無しさん
2006/07/14(金) 12:21:160296デフォルトの名無しさん
2006/07/15(土) 01:44:570297デフォルトの名無しさん
2006/07/31(月) 23:28:000298デフォルトの名無しさん
2006/08/01(火) 07:12:14なんでもいいから誰か決めてほしい
目が慣れない
0299デフォルトの名無しさん
2006/08/06(日) 14:25:06http://journal.mycom.co.jp/news/2006/07/11/342.html
0300デフォルトの名無しさん
2006/08/10(木) 21:31:100301デフォルトの名無しさん
2006/08/29(火) 14:11:230302デフォルトの名無しさん
2006/09/02(土) 20:40:200303デフォルトの名無しさん
2006/09/10(日) 01:31:53同じタグがネストすることに
問題はあるだろうか、パースはできるが。
<A attr1="true">XX<A attr2="true">YY</A>ZZ</A>
XXはattr1がtrue
YYはattr1とattr2がtrue
ZZはattr1がtrue
0304デフォルトの名無しさん
2006/09/12(火) 01:07:210305デフォルトの名無しさん
2006/09/12(火) 01:28:41XMLを使う仕事に就ける可能性が有る
0306デフォルトの名無しさん
2006/09/12(火) 01:34:23属性の継承自体はそのデータを扱うアプリ次第としか言いようが。
あとは、ループ可能なネスト構造なんて許容しちゃうと、あとで処理するのがめんどうだと思う…
>>304
XMLダケじゃなんにも
0307デフォルトの名無しさん
2006/09/12(火) 01:51:05RDBMSの世界で例えるとXMLはテーブルにすぎない。
はっきりいってXML*だけ*知ってても糞の役にも立たない。
ちなみにXSLはRDBMSの世界でのSQLに相当する。
0308デフォルトの名無しさん
2006/09/12(火) 01:52:32> ちなみにXSLはRDBMSの世界でのSQLに相当する。
ま、まじで?!XPointerとかだとおもってたぉ (;^ω^)
0310デフォルトの名無しさん
2006/09/12(火) 10:52:58T1とかEsterraだっけ? 使えるようだけど。
それで楽になったこととか、支障ない範囲で具体的に教えてくれると嬉しい。
0311デフォルトの名無しさん
2006/09/12(火) 15:11:10outputがXMLなXSLTって言ってほしかったなあ。
SELECT文もテーブルを生成するように、
XSLTもXMLを生成するという意味では似ている。
>>310
多分ほとんどの業務系でOracleのXMLとかの機能使われて無い(´・ω・`)
0312デフォルトの名無しさん
2006/09/12(火) 17:41:490313デフォルトの名無しさん
2006/09/12(火) 19:10:40XQuery使ったこと無いけど…
0314デフォルトの名無しさん
2006/09/12(火) 21:38:31オライリーのJava&XML第2版2002年発行なんですがこの内容はもう古いんでしょうか?
0315デフォルトの名無しさん
2006/09/13(水) 11:40:10やっぱそうなんかねえ。ありがとう。
>>314
あんまり最近の本読んでないけど(いかんなあ)、Java と書いて無くても
XML と書いてある本って大体 Java 使ってる場合が多い気がする。
特に DOM 操作あたりとか。たまーに Javascript とかも見た気がするけど。
読んだことありませんし何となく叩かれそうな売れ線の本に見えるけど
ttp://www.pro.or.jp/~fuji/computerbooks/tools/yasashii-xml.mana.html
見ると Java 入門 + XML みたいなこと書かれてますね。
0316デフォルトの名無しさん
2006/09/13(水) 20:47:23ありがとうございます。XMLの本も見てみます。
その本は第1版持ってるんですがAPIが古くて本のとおりような記憶が・・・
0317デフォルトの名無しさん
2006/09/30(土) 23:45:310318デフォルトの名無しさん
2006/09/30(土) 23:47:590319デフォルトの名無しさん
2006/10/01(日) 00:02:14いちおう使われてるんだなと思うと嬉しいね。
0320デフォルトの名無しさん
2006/10/01(日) 00:14:36GRDDLとか
0321デフォルトの名無しさん
2006/10/01(日) 01:45:10たぶん、規格乱立で収拾のつかなくなったRSS(+ATOM)のバージョンの違いを
吸収するために各種RSSリーダーでXSLTが利用されているハズ。
0322デフォルトの名無しさん
2006/10/01(日) 13:45:360323デフォルトの名無しさん
2006/10/01(日) 17:27:12じゃぁどうやってんの?
XSLTでRSSのバージョンの違いを吸収させずに他の方法使うなんてアホとしか思えんのだが。
俺が知らないだけでもっといい方法でもあんのか?
あ、サーバサイドのプログラムだと重いXSLTを使うわけにはいかんかったりするか。
それでもクライアントサイドでやる場合は確実にXSLTだろ〜
0324デフォルトの名無しさん
2006/10/01(日) 17:57:43mozilla系列のxul 面白いよね
豪快にrdf使ってプチrdbとかも最高
0325デフォルトの名無しさん
2006/10/02(月) 16:42:210326デフォルトの名無しさん
2006/10/02(月) 19:30:03お前では無理かもしれんが、フツーにできる。
というか、ここで使わないでどこでXSLTを使うんだよってくらいキまる。
0327デフォルトの名無しさん
2006/10/02(月) 21:19:23XSLTの表現力は、その印象ほど貧弱じゃないよ。
0328デフォルトの名無しさん
2006/10/03(火) 02:47:170329デフォルトの名無しさん
2006/10/03(火) 03:04:42日本語でおk
0330325
2006/10/03(火) 10:14:43いや、俺がXSLT使いまくった経験で言わせてもらってるよ。
ほかのフォーマットとやらには詳しくないんだ。すまない。
>>328
うん。そう思う。
XSLTは存在としては面白いけど、利点はすぐに書き換えられることぐらい…。
使う言語としてはいろいろ面倒すぎるだろう…。
あんまり存在意義がわからない。
0331デフォルトの名無しさん
2006/10/03(火) 19:35:51>利点はすぐに書き換えられることぐらい…。
ぐらい...って、おまい、それ、チョー重要だぞ。
すぐに書き換えられるってことはそもそも最初バージョンを書き起こすのも楽ってことだし、
デバッグもメンテナンスも楽ってことだぞ。
0332デフォルトの名無しさん
2006/10/03(火) 19:37:38つ 諸刃の刃
ソースコードだって直ぐ書き直せるし、interfaceだってプログラマの意思で書き換えることができる
便利だけど怖い
0333デフォルトの名無しさん
2006/10/03(火) 23:15:46http://www.xmlmaster.org/atelier/mc006.html
にある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=の指定(ロケーションパス?)が誤っている気がするのですが、
具体的にどうすれば良いのかがわかりません。
どなたかご教示いただけませんか。
0334デフォルトの名無しさん
2006/10/04(水) 15:51:030335333
2006/10/04(水) 19:48:54ありがとうございます。目的は達成できました。
コンテキストノードの前の兄弟ノードでkeyがArtistの
stringを指定している?
答えを頂いてもよく理解できてません。もっと勉強します。
0336デフォルトの名無しさん
2006/10/04(水) 20:30:440337デフォルトの名無しさん
2006/10/07(土) 21:41:45どんな構造にしたらいいのかよくわからないからどうか教えてくれないか?
言語はCとC++でヘッダファイルごとに分けようと思っている。
0338デフォルトの名無しさん
2006/10/09(月) 11:19:14XML自体には、フラグメント識別子の扱いに関する定義はないと考えて良いのでしょうか?
0339デフォルトの名無しさん
2006/10/09(月) 22:16:57DTDで定義するが、それだと不便なので、
xml:idが勧告されている。
0340デフォルトの名無しさん
2006/10/10(火) 00:38:08どうもです。
0341デフォルトの名無しさん
2006/10/10(火) 22:07:450342デフォルトの名無しさん
2006/10/11(水) 09:49:51InputStreamやStringそのままとかDocumentFragmentとかでなしに。
何がしたいかというと、外枠の仕様だけ決めておいて、
中にメタデータをボキャブラリを問わず格納できるようにしたいのですが、
外枠だけを管理するライブラリとしては、中のメタデータには触らずに、
それを処理できるほかのライブラリに処理を渡すといったことができないかと。
0343デフォルトの名無しさん
2006/10/11(水) 12:30:430344デフォルトの名無しさん
2006/10/11(水) 21:42:500345デフォルトの名無しさん
2006/10/11(水) 23:01:080346デフォルトの名無しさん
2006/10/17(火) 03:57:450347デフォルトの名無しさん
2006/10/19(木) 20:51:32LISPってS式だと思ってるの?
0348デフォルトの名無しさん
2006/10/30(月) 17:47:27XMLからPDFを作ったりできるんだよね?
Office2007からはXMLを使うみたいだから
XSL-FOと組み合わればPDFつくれるんちゃう?
0349デフォルトの名無しさん
2006/10/31(火) 08:35:520350デフォルトの名無しさん
2006/10/31(火) 12:31:32Office2007ではそれを(確かZIPで)圧縮した形式がデフォルトになるだけ。
0351デフォルトの名無しさん
2006/11/01(水) 00:57:560352デフォルトの名無しさん
2006/11/01(水) 01:56:21そうかも。詳しくは知らないけど、確かそのZIPにはドキュメントに埋め込んだ
画像やらがフツーの画像ファイルの形式で保存されててその画像ファイルだけ
そこらの画像編集ソフトで開いて編集したりとかってこともできるようになるらしいね。
0353デフォルトの名無しさん
2006/11/01(水) 23:17:520354デフォルトの名無しさん
2006/11/07(火) 16:43:11Relaxer、もう終わりなんかなあ。好きなのに。
0355デフォルトの名無しさん
2006/11/08(水) 05:41:50Relaxerはどうか知らんが、ttp://www.xmlsmartdoc.org/は終わってるようだ。
0356デフォルトの名無しさん
2006/11/08(水) 10:53:35カタカナで全然書いてなくて分からん
0357デフォルトの名無しさん
2006/11/11(土) 00:29:440358デフォルトの名無しさん
2006/11/11(土) 01:04:23バグ修正だけど、Relaxer更新されたみたいだな。
0359デフォルトの名無しさん
2006/11/12(日) 04:17:39サンプルファイルを開いて意気込んだ。
2,3回開いて、IE、explorer.exeが落ちた。
,.――――-、
ヽ / ̄ ̄ ̄`ヽ、 勇者トンファーパーマン惨状
| | (・)。(・)|
| |@_,.--、_,> 俺が着たからにはもう色々と駄目だ
ヽヽ___ノ
/:::::::::::::::::l /77
/::::::::::i:i:::::::i,../ / |
l:::/::::::::i:i:::、:::/ / |
l;;ノ:::::::::::::::l l;.,.,.! |
/::::::::::::::::l/ / 冂
/:::::::;へ:::::::l~ |ヌ|
/:::::/´ ヽ:::l .|ヌ|
.〔:::::l l:::l 凵
ヽ;;;> \;;>
0360デフォルトの名無しさん
2006/11/12(日) 20:36:16私が作成したXMLファイルのエラーをチェックするために
コマンドプロンプトから
java dom.Counter (XMLファイル)
という風にやっているのですが、次のようなエラーが出てしまいます。
[Fatal Error] :-1:-1: Premature end of file.
開始タグと閉じタグが一致してないのが原因なのかとソースを何回も
チェックしましたが、そのような記述ミスはありません。
他に原因として考えられること、またはこのエラーの指す意味が
お分かりでしたら教えていただけませんか?
よろしくお願いします。
0361デフォルトの名無しさん
2006/11/13(月) 12:20:41XMLの記述に本当に問題がないかを調べる。
パーサによっては utf-8 でも BOM ついてると弾くとか、いろいろだよ。
0362デフォルトの名無しさん
2006/11/13(月) 12:34:25あると怒るやつ、ないと怒るやつ… 狂ってるとしか思えない。
■ このスレッドは過去ログ倉庫に格納されています