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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
スレ無いしサイト少ないので立ててみる
いらなかったらサゲまくってください
2005/10/24(月) 01:36:13
staticリンクなら、もともと「使ってない機能に関する」オブジェクトは
リンクされないんじゃないか?
2005/10/24(月) 01:36:49
>>498
おまえ素人か。
仮に作りたいなら要件を詰めろよ。
どんな機能が必要か決めないとそんな話にもっていけるわけねーだろ。
2005/10/24(月) 01:37:42
文字エンコード対応だけで結局デカくならん?
Windowsには標準ではiconvも(もちろんICUも)ないよ?
まあデカいからICUなんてこの場合まず選択肢に入らないだろうけど
2005/10/24(月) 01:39:00
>>502
自作してるのはXMLパーサじゃないんだろ?
2005/10/24(月) 01:39:44
>>503
規模が大きいということはずーっとバグ取りやセキリティfixの
バージョンアップがずーっと続くということもあるし。
508デフォルトの名無しさん
垢版 |
2005/10/24(月) 01:40:39
>>507
だったら何?
2005/10/24(月) 01:42:00
具体的に必要な機能って何よ。
2005/10/24(月) 01:43:24
>>505
UTF-8の場合、外部の正規表現ライブラリの制約とかが無い限り
ASCII記号とマルチバイトが被らないという特徴を生かすという方向もある。

>>506
オレのはトップダウンパーサ。
2005/10/24(月) 01:44:38
>>508
汎用のパーサに大きすぎるって不満があるから
必要な都度作ってるって話だな。
2005/10/24(月) 01:44:53
>>510
それは暗にUTF-8限定、と言っとるわけだな。
俺的にはその時点でかなりやなかんじ。
2005/10/24(月) 01:48:01
俺様ライブラリになる可能性大だなぁ
2005/10/24(月) 01:48:20
ttp://www.40hz.org/tox/
これはまじで小さいよ。パーサといえるかどうかは微妙だが
インタフェースはSAX風のイベントハンドラ式。
これをちょっといじったのを使ったことはある。
2005/10/24(月) 01:49:26
ていうか「正規のXML文書であっても読めるとは限らない」ライブラリ、だよね
いらないよそんなの。
2005/10/24(月) 01:50:32
>>510
いや、parseの方法なんか聞いて無いんだ。
任意のXMLを確実に扱えるのか?
2005/10/24(月) 01:51:06
配布まで考えるとオレ様ライブラリの方がいいかもね。
ほげほげXMLのバージョンいくつをインストールして
あれもこれもダウンロードしてOSはサービスパックいくつ以上とかうるさくなるから、
なるべくひとつの実行ファイル単体で動作するもののほうがうれしい。
2005/10/24(月) 01:53:50
俺様なのと単体なのは話が別だ。
2005/10/24(月) 01:54:47
逆に単体で動く汎用パーサなんてあるわけ?
2005/10/29(土) 06:12:53
http://www.trickpalace.net/cxx/ex/yggdrasil/
521デフォルトの名無しさん
垢版 |
2005/10/29(土) 10:39:05
結論:msxml最高
2005/10/30(日) 04:22:38
>>520
それこそオレ様系だろ
2005/10/30(日) 19:51:13
オレ様系と汎用の境目がわからん。
TinyXmlとかMixあたりだとどっちになるんだ?
2005/11/02(水) 07:48:50
MiX凍結して結構経つなぁ
個人的にTinyやexpatよりもMiXが一番ニーズに合うから期待はしてたんだけど


もうだめぽ…?
2005/11/02(水) 14:25:14
小規模ソフトですぐに枯れたんならむしろ旬だが。
逆に永遠にバグフィックスが続くのが大規模ソフトのイタイ点。
2005/11/03(木) 10:12:24
LISPで我慢しろや
2005/11/04(金) 00:04:29
LISPで"我慢"か
勧めてるのか、けなしてるのか
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は使えません
他、細かい事はできない感じですが、用途によっては十分だと思いました
参考になればと思い書き残しておきます
2005/12/10(土) 21:57:39
HTMLパーサの話題はこのスレ的には×ですか?
2006/01/16(月) 15:40:42
HTMLパーサの話題はスレが止まるので×です
2006/02/02(木) 18:14:26
ほらほら、止まってるよ!
2006/02/04(土) 01:10:11
IXMLDOMNodeのnodeTypedValueプロパティがSystem.Xml.XMLNodeには
存在しないんだけど、C++でput_nodeTypedValue()でシリアライズした
VARIANTは、どうやればC#で読み出せるんだ。

いろいろ調べたけど、どうも無理ぽなんだが。
(Interop.MSXML2.dllを作れば別だけど)
2006/02/15(水) 21:53:09
S式パーサがあればXMLなんて不要。
どうしようもなく冗長なXMLを使ってる馬鹿は考えを改めた方がいい。

http://pc8.2ch.net/test/read.cgi/tech/1140006937/
2006/02/19(日) 00:04:45
機能的にはむしろS式の方が優れているのだが、
XMLである必要ってのは結局ミドルウェアや市販のツールの都合だろうな。
2006/02/19(日) 02:06:56
それよりもHTML(そしてSGML)らしさを醸し出してカモを集めようとしただけだと思う。
2006/03/14(火) 08:05:50
MiX使ってみたんだけどこれなんで引数の受け渡しが参照じゃないの?
理由がサッパリわからんのだけど
もしかしてこれは俺の知らないワンダフルな最適化方法なのかい?
2006/03/16(木) 13:40:55
Xerces ってなんて発音するんですか?
2006/03/16(木) 13:49:59
生の XML ではなくて、RDF (RSS/RDFに限らず)を
いじくるための標準的なライブラリは何でしょうか?

Mozilla のソースなどから取り出して使えないかと
検討したことがあるんですが、単独で使うには
適していないみたいです。
2006/03/26(日) 17:30:15
>>538
MiXは腐ってるし作者も投げたみたいだから使わない方がいいよ。
2006/04/11(火) 05:51:59
>>541
やっぱりか……
MiXソース眺めてみたけどそんな気がしたのでXercesに乗り換えた。

レスdクス
2006/05/30(火) 17:55:21
XML教えて♪
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
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版ではあったんですが。
とりあえず実装して使ってますが、元々あるなら切り替えたいなぁと。
2006/08/30(水) 10:19:57
Java版にあってC++版にない事もなかろう。つーか、ドキュメントないの?
2006/08/30(水) 22:38:19
Documentというか、Java版のクラス名と同名、一部でソース検索掛けたり、
ぐぐったりしてみましたが、見つからず。
552デフォルトの名無しさん
垢版 |
2006/09/04(月) 19:56:26
xecersってライブラリの事?
2006/09/08(金) 10:26:53
100MくらいのXMLをIEで開いたらフリーズした
2006/09/08(金) 18:32:23
フリーズではなく、思いっきり時間かかっているだけってことないか?
#100Mもあったら無茶苦茶リソース食いそうだが。
2006/09/10(日) 18:57:49
XMLはDOMで開くと開くXMLのサイズの10倍はメモリ喰うと考えていいな。
556デフォルトの名無しさん
垢版 |
2006/09/17(日) 15:34:34
DOMが使えて軽いXMLパーサある?
2006/09/17(日) 17:21:33
MSXML最高

IE6入ってればMSXML3使えるし
2006/09/18(月) 14:00:32
libxml2をわかりやすく解説してるサイトある?
2006/09/18(月) 14:05:06
MSXのMLとどう区別すれば良いですか?
2006/09/28(木) 23:06:24
C++ というか、.NET の話な気がするけど、
XPath などで、1部分だけXMLノードを抜き出して、
それを Read() で回して各ノードの情報を取りたいんだけど、
どの reader に代入すれば良いのか分からない……どうしらた良いですか?
561デフォルトの名無しさん
垢版 |
2006/09/28(木) 23:07:44
dom使ったらすんげー遅かった
saxってどうなんすか?

っていうかセンス無いライブラリだと思った
libxmlでも試すか…
562560
垢版 |
2006/09/28(木) 23:27:40
あ、違う方法だけどできた。すまんかった。
2006/09/28(木) 23:54:00
Javaみたいにインタフェースベースで作ればいいのに。
MSXMLだろうがXercesだろうが、
それぞれのファクトリだけ変更すれば全部同じになるじゃん
2006/09/29(金) 00:00:38
MSXMLは元からインターフェースベースですよ。

……すまん、言ってみたかっただけだ。
2006/09/29(金) 00:24:22
まあ、言ってることに間違いはないなw
566デフォルトの名無しさん
垢版 |
2006/10/28(土) 21:30:02
xmlファイルのdiffツールでいいものないかな?
単純なdiffだと、line単位で差分を検出してしまうので
無視していいものまで出てきてしまいます
xpath形式に変換してdiffとかすればできるかな?
2007/01/12(金) 18:35:35
UTF-8のxmlをXMLString::transcodeでShift-JISに変換すると下記の様に、"〜"や"−"が"?"となってしまうのは解決できませんか?

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

BCC5.5、Xerces-C++ Version 2.7.0 を使ってます。
2007/01/13(土) 06:23:05
>>567
Shift-JIS と CP932 (MS-Windows-31J, MS932) の違いを覚えるといいと思うよ.
569567
垢版 |
2007/01/13(土) 14:44:52
>>568さん
ありがとうございます。
ttp://www.ingrid.org/java/i18n/encoding/shift_jis.html
を参考に何となく分かりました。

結局解決は無理なのでしょうか…?
Xercesのソースをいじったり、transcodeで使う変換テーブルの様なものがあって、それをいじれば可能とか?
解決方法をネットで探しているのですが、一向に見つからなかったので質問させて頂いた次第です…
2007/01/13(土) 14:48:09
>>569
ICUは?
571567
垢版 |
2007/01/13(土) 15:24:46
>>570さん
ありがとうございます。

実は私、Cの経験は多少あるのですが、C++やXML、またWindows上でのソフト開発に関してはさっぱりのド素人です。
今回は、あるフリーソフトの公開されているソースを、少しだけ自分で必要な機能に特化して改造しようとしていている最中です。
とりあえず何とか環境を揃えて、ソースをビルドできるまでにはなりました(^^;
ICUというのも知りませんでしたが、少し調べてみて、これを文字変換に使えばできるのかな?という感じなのでもう少し調べてみます。
分からなかった場合、また質問させて頂くと思うので、よろしくお願いします。
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
574567
垢版 |
2007/01/13(土) 21:51:04
>>567-571,573
ICUとやらををどうにか組み込んだりしてみましたが、ダメでした。
私のレベルでは無理みたいなので、あきらめます…

どなたかWindowsXP、BCC 5.5.1、Xerces-C++ 2.7.0の環境で
>>567が問題無くできているよという識者の方がいらっしゃいましたら、初心者向けに具体的対策を御教授願います。m(_ _)m
2007/01/14(日) 06:19:14
>>574
>>573 の解決策を施すのが無理って言われたら、
こっちもお前さんに教えるのは無理っす、勘弁してください。
576567
垢版 |
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)
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
578567
垢版 |
2007/01/15(月) 15:58:45
>>567です。
読み込むオリジナルのXMLはUTF-8だったのですが、これを一旦Shift-JISに変換してからxercesを通す事で、XMLString::transcode周りをいじらずに、とりあえず求める結果を得ることが出来ました。
("〜"はまだですが、"−"は表示確認済み)
レスをして下さった皆様ありがとうございました。m(_ _)m
2007/02/05(月) 14:09:48
linux & C++ & libxml2 で設定ファイル読み書きさせたいんだけど全然資料ねーや
日本語の資料なんかないですか?
2007/02/21(水) 18:19:34
unixって言語ごとに別のライブラリがいるのか?
2007/02/21(水) 20:37:25
基本的にUNIXはソース配布が常識。
同じディストリでもバージョンでランタイム環境は変わるよ。

というかバイナリ配布だと動作確認が面倒くさすぎる。
582デフォルトの名無しさん
垢版 |
2007/04/08(日) 02:46:54
XMLで文字を太字にするにはどうすればいいんでしょうか?
初心者でわからないので、宜しくお願いいたします。
2007/04/08(日) 04:36:57
その質問自体的外れだが、XMLをどうやって使うのが目的かによる。
XML自体は太字にする機能や文書の整形に関する機能などは無い、
例えば最近のWordでは文書をXMLで保存しているのでWordで使っているXMLの構造にあわせる
というのであれば、Wordのファイルをのぞいてまねをすればできるとは思う。
それでもプログラムを組むこととは関連が無いので、板違いだ。
2007/04/08(日) 13:25:37
<b></b>
2007/04/08(日) 14:14:25
オリジナルのプログラムをお持ちの方いらっしゃいませんか?
この度クレジット決済でスムーズにダウンロード売買が
できるサイトを立ち上げました。
つhttp//web-cart.jp/
※会員登録&商品のうp全て無料です!
クオリティの高い商品のうpをお待ちしてますw
586デフォルトの名無しさん
垢版 |
2007/04/24(火) 22:05:20
先週からxeres-c使いはじめました。基本的な質問ですが、
DOM->XML(DOMStringからXMLStringなど)にどうして変更になったのでしょう?
2007/04/24(火) 23:15:12
すいません。自分の作るexeよりも
xeresのDLLの方が大きいのですがどうしましょう
2007/04/25(水) 12:40:32
何の問題もないと思うが
2007/05/12(土) 17:01:07
>>587
俺もC++で作ってたツールのデータ表現でxmlがいいかなぁと、
Javaみたいなノリで使おうと思ったら、
ライブラリの方が巨大で( ゚Д゚)ポカーンって感じだった。

結局、xmlの仕様は無視して、
体裁だけそれっぽいだけの俺xmlで書きたかっただけだから、
ヘッダ読み捨て、エンコード腐ってたらこける、
DTDって何ですか?な俺ライブラリ書いて適当にやった。w

どうせ文字列パースするだけだし、
車輪の云々とか気にしないならお勧め。w
2007/05/12(土) 17:22:06
WindowsならそこでMSXMLですよ
591デフォルトの名無しさん
垢版 |
2007/06/28(木) 16:09:26
質問です。初期化の
XMLPlatformUtils::Initialize();
の引数の使い方わかる方教えてください。
適当に指定しても動くのですが、効いているのかわからなくて…。
よろしくお願いします。

*適当に指定の例
DefaultPanicHandler pn;
MemoryManager *m = new MemoryManagerImpl();
XMLPlatformUtils::Initialize("ja_JP","",&pn,m,true);

*引数は以下
XMLPlatformUtils::Initialize (
        const char *const locale = XMLUni::fgXercescDefaultLocale,
const char *const nlsHome = 0,
PanicHandler *const panicHandler = 0,
MemoryManager *const memoryManager = 0,
bool toInitStatics = false
)
592デフォルトの名無しさん
垢版 |
2007/07/22(日) 00:01:19
XML文書の一部もしくは全部を暗号化したり署名したりする
XML暗号化の規格がありますが、実際にその操作をすることが
できるライブラリはあるのでしょうか?

RSS で配信する情報の一部分を暗号化したり、
もしくは改変されていないことを保証するために
署名したりしたいと思っています。
593592
垢版 |
2007/07/22(日) 00:12:03
.NET Framework と Java にはあるみたいなんですが、
C++ で使えるライブラリを探しています。
2007/07/22(日) 03:07:51
libxml++使ってる人いる?
595デフォルトの名無しさん
垢版 |
2007/07/23(月) 20:22:57
Xercesのパースに関する質問です。
現在、スキーマを用いたparse時の挙動が分からず困っています。
<xs:pattern value="(([0-9]{1})|([0-9]{2}))-(([0-9]{1})|([0-9]{2}))"/>
というパターンがあるのですが、"["と"]"が処理できていないようなのです。(パース時にエラー)

スキーマを適用する際のパラメータは以下の3つ(だけ)だと思っています。
・setDoValidation
・setValidationScheme
・setDoSchema

そのうちのsetDoValidationはsetValidationSchemeにとって変わられたので、
意識すべきはsetValidationSchemeとsetDoSchemaであるということが調べて分かりました。

setValidationSchemeとsetDoSchemaはそれぞれどういうことをするためのものでしょうか?
一応APIドキュメントは読んだものの、理解できませんでした。
DTD用とschema用で分かれているとかでしょうか?
2007/07/28(土) 16:03:44
>595
特定しますた。

ちなみに、Xerces の正規表現実装がマッチが成功した場合にはバックトラックしない({2}にマッチするものは確実に{1}にマッチするけど、{1}にマッチした段階で{2}にマッチさせようとしない)というのが問題。
選択の順番をひっくり返すか、普通に量指定子{1,2}を使うことで回避可能。
597デフォルトの名無しさん
垢版 |
2007/07/28(土) 16:11:47
【派遣ネガティブ根性チェック】

3つ以上、チェックがつけばアナタの性格はひん曲がっており、
ネガティブ負け組派遣人生を歩んでいます。

□派遣先正社員の作った糞開発ツールはたとえ腐っててもマンセーして使う
□派遣先の人事権のある社員の意見はたとえ間違っていてもマンセーする
□仕様とは正社員から口伝されるものだ
□耳で聞いた仕様を正確に覚えていないのは自分の責任だ
□昼食は必ず派遣先の社員と行くべきだ
□自分の仕事で問題が発生しても解決するのは派遣の仕事ではない
□自社で仕事なんてできるわけがない
□派遣労働の問題点の話題が出ると感情剥き出しにして反論する
□派遣労働の問題を指摘する人は嫌いだ
□派遣先には仕事だけでなくプライベートについてもグイグイ引っ張って欲しい
□奢ってくれる派遣先正社員を尊敬する
□自分の月額金額を知らないのは当然だ、単金を聞いてはいけない
□派遣先正社員より自分の生涯収入が低いのは当然だ
□チビは派遣先にかわいがってもらいやすいから派遣には有利だ
2007/08/07(火) 22:43:42
boost::serializationも仲間に入れておくれ。
599デフォルトの名無しさん
垢版 |
2007/08/08(水) 12:56:54
>>598
俺愛用してる、 boost::serialization。
でも XML という点でいうならむしろ
boost::archive::xml_iarchive と
boost::archive::xml_iarchive ではないだろうか。
2007/08/22(水) 22:52:36
xml_iarchiveと
xml_iarchiveには
つっこまずにいられない。
2007/08/22(水) 22:57:02
XMLじゃねーけどPythonでlxml(libxml2のバインディング)に
hogeとか食わせたら
<html><body><p>hoge</p></body></html>
みたに出力するのに驚いた

なんだこれ、やり過ぎじゃねとも思うがスゲーな
2007/09/11(火) 23:02:03
全然詳しくないので質問させてください。

自称「マネージメントもできる」派遣クンが
「XMLが僕のプログラムどおりに読めない原因を調べるのは僕の仕事ではありません。」
と言っています。

彼のXMLプログラムが動かないのを調べるのは誰の仕事なのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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