- - PR -
xerces c++ をwin95で動かす
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-11-29 13:34
お世話になります。
win95でXerces C++を利用されている、または利用した方はいらっしゃますか? 現在win2kで動作するのですが、95では動作しなくて困っています。 公式には95はサポートしていないという情報はみたのですが、 ここをこうすれば動くよというような 情報が御座いましたら、教えていただきたいと思いました。 以上、よろしくお願い致します。 |
|
投稿日時: 2004-11-29 17:52
Xerces C++ を使っています(Win98/Meでも)。
Win95では試したことはありませんが、どのようなエラーが出るのですか? もう少し詳しく書かないと、レスの付けようがありませんよ。 それと、せっかくソースコードもダウンロード出来るのですから、 どこでどんなエラーが出るのかデバッグしてみましたか? デバッグしてみれば何か解決策が見えてきますよね? ※ちなみに投稿先は「XML & SOA」の会議室の方がベターだと思います。 |
|
投稿日時: 2004-11-30 18:34
chack さんありがとうございます。
どこに投稿しようか悩んでいたのですが、 いわれてみればそうですね。 win95だからここかな?って思ってしまいました。 win95で動かしたときにエラーになるわけではなさそうです。 DOMNodeList *list = doc->getElementsByTagName(XMLString::transcode("Row") ); ってやったときに cout << "該当する要素の数は=" << list->getLength() << endl; ってやるとlist->getLength()が0になっているんです。 win2kで動かすと想定する数字がとれました。 なんかやり方とかの問題で済むのであれば、 ご存知の方にヒントを頂こうと思った次第です。 やはりソースか。。。 ここは覚悟をきますか! |
|
投稿日時: 2004-12-01 13:40
こちらのWin98環境で Xerces c++ 2.6.0 を使って試してみましたが、
ちゃんと list->getLength() は動いています。(Win95では未確認ですが) Xerces c++のサンプルに CreateDOMDocument というものがあります。 これでは unsigned int elementCount = doc->getElementsByTagName(X("*"))->getLength(); というコードで同じことをやっていますので、このサンプルで試したらどうでしょうか? ちなみに、X("*")は XMLString::transcode("*") のラッパークラスのマクロです。 わたびんさんのコードで DOMNodeList *list = doc->getElementsByTagName(XMLString::transcode("Row")); と記述されていますが、これは正確には XMLCh* uniName = XMLString::transcode("Row"); DOMNodeList *list = doc->getElementsByTagName(uniName); XMLString::release(&uniName); としてreleaseしないとリークしますのでご注意を。 また、MSVC++を使用していると思われますので、下記のような記述ではいかがでしょうか? DOMNodeList *list = doc->getElementsByTagName(L"Row"); unsigned int count = list->getLength(); |
|
投稿日時: 2004-12-03 11:21
chackさんありがとうございます。
(1)メモリリーク対応 (2)下記のように修正して実験 DOMNodeList *list = doc->getElementsByTagName(L"Row"); unsigned int count = list->getLength(); 上記の方法で対応してみたいとおもいます。 追って結果を報告したいと思います。 私はC++はド素人なのですが、 上級者のアドバイスが頂けて本当感謝です。 C++はちと私には敷居が高いようです。。。 |
|
投稿日時: 2004-12-03 11:30
さっそく実験してみました。
DOMNodeList *list = doc->getElementsByTagName(L"Row"); unsigned int count = list->getLength(); でやってみたのですが、win95ではやはり0件でした。。 |
|
投稿日時: 2004-12-03 11:38
さっそく実験してみました。
DOMNodeList *list = doc->getElementsByTagName(L"Row"); unsigned int count = list->getLength(); でやってみたのですが、win95ではやはり0件でした。。 もうひとつの実験 unsigned int elementCount = doc->getElementsByTagName(X("*"))->getLength(); をやるのを忘れていました。 こちらも実験してみます。 これはwin95にVCいれてデバッグしかないですね。。。 いれていいのかなぁ。。?? |
1