もう14時か、
2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50 [PR]萌え猫写真館が復活。[PR]  

C++でXML(主にxerces)やろう!

1 :デフォルトの名無しさん:02/04/01 15:06
スレ無いしサイト少ないので立ててみる
いらなかったらサゲまくってください

483 :デフォルトの名無しさん:2005/10/23(日) 23:00:44
もしかしてサーバはWindowsか。なんかもう・・・いいや。

484 :デフォルトの名無しさん:2005/10/23(日) 23:06:19
使うOSすら間違えているんだな。論外。

485 :デフォルトの名無しさん:2005/10/24(月) 00:27:39
全台UNIXというわけにもいかない。
ハードや商用ソフトの知的所有権の制約もあるんだよ。

486 :デフォルトの名無しさん:2005/10/24(月) 00:31:56
WindowsならWSHからMSXML使用でいいのでは。

487 :デフォルトの名無しさん:2005/10/24(月) 00:33:56
だからそういう外部モジュールと依存関係とりたくねーの。
スタティックリンクしてなるべく自己完結したいの。

488 :デフォルトの名無しさん:2005/10/24(月) 00:34:01
同意。

489 :デフォルトの名無しさん:2005/10/24(月) 00:35:56
同意は486に対してね。

つかもういいよ。その例はXMLの話にもっていくほどでもない。

490 :デフォルトの名無しさん:2005/10/24(月) 00:55:56
自分が必要な機能だけをサポートした、小さなライブラリ作れば済むだけの話じゃん。
汎用のライブラリが小さく作れるわけ無かろう。
バカを相手するのも大変だな、まったく。

491 :デフォルトの名無しさん:2005/10/24(月) 01:01:35
小さいライブラリの実装とか話題にしたくないわけね?

492 :デフォルトの名無しさん:2005/10/24(月) 01:03:13
「小さいライブラリ無い?」ってただのクレクレ厨じゃん。

493 :デフォルトの名無しさん:2005/10/24(月) 01:08:53
その場合の大きい小さいって何だ?
ファイルサイズか?それともいらない関数が多いとかか?

494 :デフォルトの名無しさん:2005/10/24(月) 01:15:46
オレの場合いらない機能が多すぎ。

495 :デフォルトの名無しさん:2005/10/24(月) 01:18:58
じゃあスレ違いだね。
君専用の汎用ライブラリなんて存在し無いから。

496 :デフォルトの名無しさん:2005/10/24(月) 01:19:07
「お前が欲しい機能だけ実装されたライブラリ」の話だったらまったく興味は無いな。

497 :デフォルトの名無しさん:2005/10/24(月) 01:22:45
やっぱXMLの話にもっていくほどじゃないな。
>>494が欲しいのはconfの特定の部分を書き換えるライブラリじゃん。

498 :デフォルトの名無しさん:2005/10/24(月) 01:27:01
だからトップダウンでパースするかイベントでとるかとか
字句解析時の内部コードはどうするかとか
そういう話にはもって行きたくないのね?

499 :デフォルトの名無しさん:2005/10/24(月) 01:28:31
msxmlの使い方がわかんなくて駄々こねてるだけと見た。

500 :デフォルトの名無しさん:2005/10/24(月) 01:32:09
いらない機能は使わなければいいだけだと思うのだが。

501 :デフォルトの名無しさん:2005/10/24(月) 01:33:53
>>498
いつのまにライブラリ無いか?の話からライブラリ作らないか?の話に変わったんだ

502 :デフォルトの名無しさん:2005/10/24(月) 01:35:48
話が錯綜してるけど482は自作しているのだが。
もう一人は小さいのが無いのか探している。

503 :デフォルトの名無しさん:2005/10/24(月) 01:36:13
staticリンクなら、もともと「使ってない機能に関する」オブジェクトは
リンクされないんじゃないか?


504 :デフォルトの名無しさん:2005/10/24(月) 01:36:49
>>498
おまえ素人か。
仮に作りたいなら要件を詰めろよ。
どんな機能が必要か決めないとそんな話にもっていけるわけねーだろ。

505 :デフォルトの名無しさん:2005/10/24(月) 01:37:42
文字エンコード対応だけで結局デカくならん?
Windowsには標準ではiconvも(もちろんICUも)ないよ?
まあデカいからICUなんてこの場合まず選択肢に入らないだろうけど

506 :デフォルトの名無しさん:2005/10/24(月) 01:39:00
>>502
自作してるのはXMLパーサじゃないんだろ?


507 :デフォルトの名無しさん:2005/10/24(月) 01:39:44
>>503
規模が大きいということはずーっとバグ取りやセキリティfixの
バージョンアップがずーっと続くということもあるし。

508 :デフォルトの名無しさん:2005/10/24(月) 01:40:39
>>507
だったら何?

509 :デフォルトの名無しさん:2005/10/24(月) 01:42:00
具体的に必要な機能って何よ。

510 :デフォルトの名無しさん:2005/10/24(月) 01:43:24
>>505
UTF-8の場合、外部の正規表現ライブラリの制約とかが無い限り
ASCII記号とマルチバイトが被らないという特徴を生かすという方向もある。

>>506
オレのはトップダウンパーサ。

511 :デフォルトの名無しさん:2005/10/24(月) 01:44:38
>>508
汎用のパーサに大きすぎるって不満があるから
必要な都度作ってるって話だな。

512 :デフォルトの名無しさん:2005/10/24(月) 01:44:53
>>510
それは暗にUTF-8限定、と言っとるわけだな。
俺的にはその時点でかなりやなかんじ。

513 :デフォルトの名無しさん:2005/10/24(月) 01:48:01
俺様ライブラリになる可能性大だなぁ

514 :デフォルトの名無しさん:2005/10/24(月) 01:48:20
ttp://www.40hz.org/tox/
これはまじで小さいよ。パーサといえるかどうかは微妙だが
インタフェースはSAX風のイベントハンドラ式。
これをちょっといじったのを使ったことはある。


515 :デフォルトの名無しさん:2005/10/24(月) 01:49:26
ていうか「正規のXML文書であっても読めるとは限らない」ライブラリ、だよね
いらないよそんなの。

516 :デフォルトの名無しさん:2005/10/24(月) 01:50:32
>>510
いや、parseの方法なんか聞いて無いんだ。
任意のXMLを確実に扱えるのか?

517 :デフォルトの名無しさん:2005/10/24(月) 01:51:06
配布まで考えるとオレ様ライブラリの方がいいかもね。
ほげほげXMLのバージョンいくつをインストールして
あれもこれもダウンロードしてOSはサービスパックいくつ以上とかうるさくなるから、
なるべくひとつの実行ファイル単体で動作するもののほうがうれしい。


518 :デフォルトの名無しさん:2005/10/24(月) 01:53:50
俺様なのと単体なのは話が別だ。

519 :デフォルトの名無しさん:2005/10/24(月) 01:54:47
逆に単体で動く汎用パーサなんてあるわけ?

520 :デフォルトの名無しさん:2005/10/29(土) 06:12:53
http://www.trickpalace.net/cxx/ex/yggdrasil/

521 :デフォルトの名無しさん:2005/10/29(土) 10:39:05
結論:msxml最高

522 :デフォルトの名無しさん:2005/10/30(日) 04:22:38
>>520
それこそオレ様系だろ

523 :デフォルトの名無しさん:2005/10/30(日) 19:51:13
オレ様系と汎用の境目がわからん。
TinyXmlとかMixあたりだとどっちになるんだ?

524 :デフォルトの名無しさん:2005/11/02(水) 07:48:50
MiX凍結して結構経つなぁ
個人的にTinyやexpatよりもMiXが一番ニーズに合うから期待はしてたんだけど


もうだめぽ…?

525 :デフォルトの名無しさん:2005/11/02(水) 14:25:14
小規模ソフトですぐに枯れたんならむしろ旬だが。
逆に永遠にバグフィックスが続くのが大規模ソフトのイタイ点。

526 :デフォルトの名無しさん:2005/11/03(木) 10:12:24
LISPで我慢しろや

527 :デフォルトの名無しさん:2005/11/04(金) 00:04:29
LISPで"我慢"か
勧めてるのか、けなしてるのか

528 :デフォルトの名無しさん:2005/11/29(火) 17:56:08
MiX、サンプルの
MiX::DOM_Parser<char> parser;
parser.setIgnoreSpace(true);
return parser.parse(fin);
がコンパイル通らなくてどうしようもないんだが。。。
document_typeとMiX::document<char>が合わない??

529 :デフォルトの名無しさん:2005/12/07(水) 07:42:08
WebサービスもXMLもVBならカンタンだね。
WebアプリケーションもWindowsアプリと同じだし、


そもそもXMLって何だっけ?


530 :デフォルトの名無しさん:2005/12/10(土) 17:06:55
MiXが使えないと嘆いてた者です
ちょっとしたXMLを読み書きしたいだけなら
SourceForgeにある、Froggerがよさげでした
機能、サイズともにMiXより小さくて(ヘッダとソースで1000行以下)
DOMでの読み書きができて、SAXは使えません
他、細かい事はできない感じですが、用途によっては十分だと思いました
参考になればと思い書き残しておきます

531 :デフォルトの名無しさん:2005/12/10(土) 21:57:39
HTMLパーサの話題はこのスレ的には×ですか?

532 :デフォルトの名無しさん:2006/01/16(月) 15:40:42
HTMLパーサの話題はスレが止まるので×です

533 :デフォルトの名無しさん:2006/02/02(木) 18:14:26
ほらほら、止まってるよ!

534 :デフォルトの名無しさん:2006/02/04(土) 01:10:11
IXMLDOMNodeのnodeTypedValueプロパティがSystem.Xml.XMLNodeには
存在しないんだけど、C++でput_nodeTypedValue()でシリアライズした
VARIANTは、どうやればC#で読み出せるんだ。

いろいろ調べたけど、どうも無理ぽなんだが。
(Interop.MSXML2.dllを作れば別だけど)


535 :デフォルトの名無しさん:2006/02/15(水) 21:53:09
S式パーサがあればXMLなんて不要。
どうしようもなく冗長なXMLを使ってる馬鹿は考えを改めた方がいい。

http://pc8.2ch.net/test/read.cgi/tech/1140006937/


536 :デフォルトの名無しさん:2006/02/19(日) 00:04:45
機能的にはむしろS式の方が優れているのだが、
XMLである必要ってのは結局ミドルウェアや市販のツールの都合だろうな。

537 :デフォルトの名無しさん:2006/02/19(日) 02:06:56
それよりもHTML(そしてSGML)らしさを醸し出してカモを集めようとしただけだと思う。

538 :デフォルトの名無しさん:2006/03/14(火) 08:05:50
MiX使ってみたんだけどこれなんで引数の受け渡しが参照じゃないの?
理由がサッパリわからんのだけど
もしかしてこれは俺の知らないワンダフルな最適化方法なのかい?

539 :デフォルトの名無しさん:2006/03/16(木) 13:40:55
Xerces ってなんて発音するんですか?

540 :デフォルトの名無しさん:2006/03/16(木) 13:49:59
生の XML ではなくて、RDF (RSS/RDFに限らず)を
いじくるための標準的なライブラリは何でしょうか?

Mozilla のソースなどから取り出して使えないかと
検討したことがあるんですが、単独で使うには
適していないみたいです。

541 :デフォルトの名無しさん:2006/03/26(日) 17:30:15
>>538
MiXは腐ってるし作者も投げたみたいだから使わない方がいいよ。

542 :デフォルトの名無しさん:2006/04/11(火) 05:51:59
>>541
やっぱりか……
MiXソース眺めてみたけどそんな気がしたのでXercesに乗り換えた。

レスdクス

543 :デフォルトの名無しさん:2006/05/30(火) 17:55:21
XML教えて♪

544 :デフォルトの名無しさん:2006/05/30(火) 17:58:28
セクロスって何?XMLのツール?

545 :デフォルトの名無しさん:2006/06/03(土) 06:38:22
XML Schema Language でかかれたスキーマから、
C++ のクラスを生成してくれるようなライブラリはありますか?
できればシリアライザも・・・

Java や .NET Framework ではあるのですが、
C++ で読み書きしたいっす。

546 :デフォルトの名無しさん:2006/06/24(土) 02:22:52
セクロス=sex

547 :デフォルトの名無しさん:2006/06/24(土) 02:33:39
>>546
Simple Expression Xml?

548 :デフォルトの名無しさん:2006/06/24(土) 13:38:38
>>540
http://librdf.org/

C++っていうかCだけど。
あとrepatっていうexpatベースのRDFパーサがあったんだけど配布元が消えた。

549 :デフォルトの名無しさん:2006/08/25(金) 02:16:21
xercesのC++版で、SAXをつかって、ファイルに書き出すクラスってあります?
MSXMLやxercesのJava版ではあったんですが。
とりあえず実装して使ってますが、元々あるなら切り替えたいなぁと。

550 :デフォルトの名無しさん:2006/08/30(水) 10:19:57
Java版にあってC++版にない事もなかろう。つーか、ドキュメントないの?

551 :デフォルトの名無しさん:2006/08/30(水) 22:38:19
Documentというか、Java版のクラス名と同名、一部でソース検索掛けたり、
ぐぐったりしてみましたが、見つからず。


552 :デフォルトの名無しさん:2006/09/04(月) 19:56:26
xecersってライブラリの事?

553 :デフォルトの名無しさん:2006/09/08(金) 10:26:53
100MくらいのXMLをIEで開いたらフリーズした

554 :デフォルトの名無しさん:2006/09/08(金) 18:32:23
フリーズではなく、思いっきり時間かかっているだけってことないか?
#100Mもあったら無茶苦茶リソース食いそうだが。

555 :デフォルトの名無しさん:2006/09/10(日) 18:57:49
XMLはDOMで開くと開くXMLのサイズの10倍はメモリ喰うと考えていいな。

556 :デフォルトの名無しさん:2006/09/17(日) 15:34:34
DOMが使えて軽いXMLパーサある?

557 :デフォルトの名無しさん:2006/09/17(日) 17:21:33
MSXML最高

IE6入ってればMSXML3使えるし

558 :デフォルトの名無しさん:2006/09/18(月) 14:00:32
libxml2をわかりやすく解説してるサイトある?

559 :デフォルトの名無しさん:2006/09/18(月) 14:05:06
MSXのMLとどう区別すれば良いですか?

560 :デフォルトの名無しさん:2006/09/28(木) 23:06:24
C++ というか、.NET の話な気がするけど、
XPath などで、1部分だけXMLノードを抜き出して、
それを Read() で回して各ノードの情報を取りたいんだけど、
どの reader に代入すれば良いのか分からない……どうしらた良いですか?

561 :デフォルトの名無しさん:2006/09/28(木) 23:07:44
dom使ったらすんげー遅かった
saxってどうなんすか?

っていうかセンス無いライブラリだと思った
libxmlでも試すか…

562 :560:2006/09/28(木) 23:27:40
あ、違う方法だけどできた。すまんかった。

563 :デフォルトの名無しさん:2006/09/28(木) 23:54:00
Javaみたいにインタフェースベースで作ればいいのに。
MSXMLだろうがXercesだろうが、
それぞれのファクトリだけ変更すれば全部同じになるじゃん

564 :デフォルトの名無しさん:2006/09/29(金) 00:00:38
MSXMLは元からインターフェースベースですよ。

……すまん、言ってみたかっただけだ。

565 :デフォルトの名無しさん:2006/09/29(金) 00:24:22
まあ、言ってることに間違いはないなw

566 :デフォルトの名無しさん:2006/10/28(土) 21:30:02
xmlファイルのdiffツールでいいものないかな?
単純なdiffだと、line単位で差分を検出してしまうので
無視していいものまで出てきてしまいます
xpath形式に変換してdiffとかすればできるかな?

567 :デフォルトの名無しさん:2007/01/12(金) 18:35:35
UTF-8のxmlをXMLString::transcodeでShift-JISに変換すると下記の様に、"〜"や"−"が"?"となってしまうのは解決できませんか?

「お〜い。−100」 → 「お?い。?100」 となってしまいます。

BCC5.5、Xerces-C++ Version 2.7.0 を使ってます。

568 :デフォルトの名無しさん:2007/01/13(土) 06:23:05
>>567
Shift-JIS と CP932 (MS-Windows-31J, MS932) の違いを覚えるといいと思うよ.

569 :567:2007/01/13(土) 14:44:52
>>568さん
ありがとうございます。
ttp://www.ingrid.org/java/i18n/encoding/shift_jis.html
を参考に何となく分かりました。

結局解決は無理なのでしょうか…?
Xercesのソースをいじったり、transcodeで使う変換テーブルの様なものがあって、それをいじれば可能とか?
解決方法をネットで探しているのですが、一向に見つからなかったので質問させて頂いた次第です…

570 :デフォルトの名無しさん:2007/01/13(土) 14:48:09
>>569
ICUは?

571 :567:2007/01/13(土) 15:24:46
>>570さん
ありがとうございます。

実は私、Cの経験は多少あるのですが、C++やXML、またWindows上でのソフト開発に関してはさっぱりのド素人です。
今回は、あるフリーソフトの公開されているソースを、少しだけ自分で必要な機能に特化して改造しようとしていている最中です。
とりあえず何とか環境を揃えて、ソースをビルドできるまでにはなりました(^^;
ICUというのも知りませんでしたが、少し調べてみて、これを文字変換に使えばできるのかな?という感じなのでもう少し調べてみます。
分からなかった場合、また質問させて頂くと思うので、よろしくお願いします。

572 :デフォルトの名無しさん:2007/01/13(土) 15:51:57
今時XPathも使わずにDOMを真面目にたどって要素を取得なんて考えられんが
Xerces, Xalan両方入れるとなるとデカ杉っつー感じよなぁ

573 :道化師:2007/01/13(土) 18:35:35
>>567-568
バベルでその問題に対応する為にそのへんの差分をいろいろ調べたけど、
取りあえず Xeerces に読み込ませる前に予め以下の変換を施せば十分だと思う。

0x2014 → 0x2015 // HORIZONTAL BAR
0x301C → 0xFF5E // FULLWIDTH TILDE
0x2016 → 0x2225 // PARALLEL TO
0x2212 → 0xFF0D // FULLWIDTH HYPHEN-MINUS
0x00A2 → 0xFFE0 // FULLWIDTH CENT SIGN
0x00A3 → 0xFFE1 // FULLWIDTH POUND SIGN
0x00AC → 0xFFE2 // FULLWIDTH NOT SIGN

あと、Mac 上で作成された UNICODE 文字列には結構
PRIVATE USE AREA ( 0xE000 〜 0xF8FF )のコードが含まれるんで
必要に応じてこのへんのコードも読み飛ばせばおk

574 :567:2007/01/13(土) 21:51:04
>>567-571,573
ICUとやらををどうにか組み込んだりしてみましたが、ダメでした。
私のレベルでは無理みたいなので、あきらめます…

どなたかWindowsXP、BCC 5.5.1、Xerces-C++ 2.7.0の環境で
>>567が問題無くできているよという識者の方がいらっしゃいましたら、初心者向けに具体的対策を御教授願います。m(_ _)m

575 :デフォルトの名無しさん:2007/01/14(日) 06:19:14
>>574
>>573 の解決策を施すのが無理って言われたら、
こっちもお前さんに教えるのは無理っす、勘弁してください。

576 :567:2007/01/14(日) 11:46:00
>>575さん
表の値がよくわかりませんでした…
例えば "〜" のUTF-8コードって 0xEFBD9E、Shift-JISは 0x8160ですよね。
でも XMLString::transcode に渡すのは const XMLCh* 型みたいなので、unsigned shortのワイド文字型のポインタになってますよね。
ということは、XMLString::transcode に渡す前にどこかで UTF-8→XMLCh型の変換 が行われているという事ですか?
つまり "〜" 0xEFBD9E(UTF-8)→<どこかで変換>→0x????(XMLCh型)→<XMLString::transcodeで変換>→0x8160(S-JIS) ということ?
見当違いでしたらすみません。

>>575さんは対策可能なのでしょうね…。ひょっとしたら確認も取れているのでしょうか。すばらしいです。
私の知識レベルでは無理そうです(T_T)

577 :デフォルトの名無しさん:2007/01/14(日) 17:09:56
ひっかかったのはそこか。
>>573 の変換表の値は UTF32 の時の値。

>でも XMLString::transcode に渡すのは const XMLCh* 型みたいなので、
>unsigned shortのワイド文字型のポインタになってますよね。
>ということは、XMLString::transcode に渡す前にどこかで UTF-8→XMLCh型
>の変換 が行われているという事ですか?
>つまり "〜" 0xEFBD9E(UTF-8)→<どこかで変換>→0x????(XMLCh型)→
><XMLString::transcodeで変換>→0x8160(S-JIS) ということ?

xerces を触ったことはないけど、恐らくそうだろうね。
const XMLCh * な文字列に格納された時点で UTF32 に変換されていれば、
>>573 の変換を<XMLString::transcodeで変換>の直前に適用するだけで多分、おk

578 :567:2007/01/15(月) 15:58:45
>>567です。
読み込むオリジナルのXMLはUTF-8だったのですが、これを一旦Shift-JISに変換してからxercesを通す事で、XMLString::transcode周りをいじらずに、とりあえず求める結果を得ることが出来ました。
("〜"はまだですが、"−"は表示確認済み)
レスをして下さった皆様ありがとうございました。m(_ _)m

579 :デフォルトの名無しさん:2007/02/05(月) 14:09:48
linux & C++ & libxml2 で設定ファイル読み書きさせたいんだけど全然資料ねーや
日本語の資料なんかないですか?

580 :デフォルトの名無しさん:2007/02/21(水) 18:19:34
unixって言語ごとに別のライブラリがいるのか?

581 :デフォルトの名無しさん:2007/02/21(水) 20:37:25
基本的にUNIXはソース配布が常識。
同じディストリでもバージョンでランタイム環境は変わるよ。

というかバイナリ配布だと動作確認が面倒くさすぎる。

582 :デフォルトの名無しさん:2007/04/08(日) 02:46:54
XMLで文字を太字にするにはどうすればいいんでしょうか?
初心者でわからないので、宜しくお願いいたします。

583 :デフォルトの名無しさん:2007/04/08(日) 04:36:57
その質問自体的外れだが、XMLをどうやって使うのが目的かによる。
XML自体は太字にする機能や文書の整形に関する機能などは無い、
例えば最近のWordでは文書をXMLで保存しているのでWordで使っているXMLの構造にあわせる
というのであれば、Wordのファイルをのぞいてまねをすればできるとは思う。
それでもプログラムを組むこととは関連が無いので、板違いだ。

129 KB [ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]

■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
【YouTube】TubePlayer X【ニコニコ動画対応】 [ソフトウェア]
OCN規制 No.5 [2ch規制情報]
将来の海面上昇6メートルに予測超えると米チーム [自然災害]

新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.0.7.3 2008/07/26
FOX ★ DSO(Dynamic Shared Object)