• 締切済み

MSXMLでXMLファイルの読込みについて(改行によるエラー)

はじめまして、最近MSXMLを使った仕事をしています。 本日いろいろテストしていたのですが、タグ間の改行の入り具合によってXMLファイルがうまく読み込めない場合があります。 具体例としまして 1)要素ごとに改行されている場合 -> 成功します。 <A> <B> ... </B> </A> 2)改行無しの場合 -> 失敗します。 <A><B>...</B></A> 3)中途半端に改行が入る場合 -> 失敗します。 <A><B> ...</B> </A> 4)ルートタグ以外を一行で記述 -> 成功します。 <A> <B>...</B> </A> XMLファイルを生成するところできちんと整形すればエラーは起きないようにプログラムを作成できるのですが、どうも納得がいきませんしあまり良い製品とはいえません。このような現象にあわれた方アドバイス宜しくお願いします。 解決法がわからなくともこのような現象があるかどうかわかるだけでも参考になります。dllのバージョンはmsxml4.dllです。(MSXML4.0SP2をinstall) 宜しくお願いいたします。m(_ _)m

みんなの回答

回答No.1

>XMLファイルを生成するところできちんと整形すれば アプリケーションで生成しているということでしょうか。そうなると、改行コードが統一されているのか、または、改行コードを変更するとどうなるのかという問題が気になります。

t-_-anigu
質問者

お礼

ご解答有難うございます。 実は本日デバッグを繰り返して、MSXMLの部分のエラーではないことがわかりました。構文解析もきちんと出来ており別モジュールにてエラーが発生していました。有難うございました。

関連するQ&A

  • XMLデータの中の改行コードについて

    Windows2K VC++6.0 msxml3.dll 環境でXMLデータ処理をしています。 XMLデータ <aa> <Data>内容</Data> </aa> pXMLDom->getElementsByTagName(L"Data", &NodeList); pIDOMNodeList->get_item(0, &Node); Node->get_text(&bstrText); XMLDOMを用いて<Data>内容</Data>のデータを取ると『内容』が取れますが、内容の中で【改行コード(CRLF(10進数13,10))】が『LF(10)』になってしまいますが、 どうしてでしょうか。

  • XMLファイルがブラウザで開けません

    こんにちは。XMLファイルの取り扱いについてお尋ねします。 クライアントから提供されたxmlファイルがコンピュータによってブラウザで開けたり開けなかったりします。 開けない場合は、「指定されたリソースは見つかりません」という表示が出ます。このサイトでXMLファイルに関するQ&Aを見ましたが、どれが該当するのかよくわかりません。 この現象の解決策がお分かりの方、アドバイスをお願いいたします。

  • xmlファイル(UTF-8)への書き出し時の改行

    こんばんわ。 息詰ってしまったので質問をさせていただきます。 無理矢理な書き方をしているのがいけないのか PHPからXMLファイルへ書き出しをすると改行として認識されず文字として認識されてしまいます。 どのたかご存じの方がいましたらアドバイスをお願いします! ■index.php(UTF-8、LF) //書き出しに関してのスクリプトです。 $xmlfile="xml/samplexml.xml(xmlファイルまでのパスとxmlファイル名)"; //xmlに書き出しデータ作成 $xmldata = "<xmldata><データ>データだよ</データ><果物>いちご</果物><野菜>キュウリ</野菜></xmldata>"; $fp = @fopen($xmlfile , "a") or err_msg("XMLが開けません。"); flock($fp , LOCK_EX); fputs($fp , $xmldata . "\n"); flock($fp , LOCK_UN); fclose($fp); ■samplexml.xml(UTF-8、LF) <?xml version="1.0" encoding="UTF-8"?> <xmldata><データ>データだよ0</データ><果物>ばなな</果物><野菜>キャベツ</野菜></xmldata> ※ここに改行をさせてデータを追加したい。。 上のスクリプトの結果は改行されずに「\n」も文字として改行されずに追加されてしまう。(「\n\r」「\r」でもテストをしてみたのですが結果は同じでした。)

    • ベストアンサー
    • PHP
  • 属性の値に特殊文字が大量にあるとMSXMLで読み込めない

    MSXMLを使って、属性の値に特殊文字(「<」「>」「&」など)が 大量に使われているXMLを読みこもうとすると失敗します。 正常なXMLと認識されないようです。 「Load」を使ってファイルから読み込んだ場合もダメ。 「LoadXML」で文字列から読み込んだ場合もダメ。 以下のようなVBAコードで再現できます。 --------- Dim oDom As New MSXML2.DOMDocument With oDom.appendChild(oDom.createElement("root"))   With .Attributes.setNamedItem(oDom.createAttribute("attr"))     '.nodeValue = String(65533, "<") 'OK     .nodeValue = String(65534, "<") 'NG   End With End With oDom.loadXML oDom.XML '←正しく読み込めない --------- MSXML4でもMSXML6でも同様でした。 これはバグ、それとも仕様なのでしょうか。 探してもそれらしい資料が見つかりません。 どなたかわかる方、教えてください。 補足ですが、 実は同様のXMLファイルをIE6に読ませようとした場合にも、エラー表示されます。 エラーメッセージは「エラーを特定できません」。 FireFoxだとOKのようです。

    • 締切済み
    • XML
  • XMLの改行方法とリンクの仕方

    XMLで改行するにはどうしたらよろしいでしょうか? http://d.hatena.ne.jp/notintrade/20080122/1201016668 http://www1.mahoroba.ne.jp/~mitt/xml/xml/step11.htm こちらのサイトを参考にしていじってみてもうまく行きませんでした また、こちらのサイトでは http://questionbox.jp.msn.com/qa3557875.html <<XMLを改行して表示させたい場合には、私の場合、保存する際にすべての要素ごとに改行を加えたりインデントを加えたりするXSLTを通すという手段を使っています。 やれる手段らしき物が書かれているのですが、どうやればいいのかがわかりません。 他にも簡単な方法で改行できる方法があれば教えて頂けないでしょうか? また http://www6.airnet.ne.jp/manyo/xml/index.html こちらのHPで <a href="***"><img src="***"></a> と <iframe src="***"></iframe> の形式のリンクの方法はわかったのですが <a href="***" target="_blank"><img src="***" border="0"></a> と <iframe src="***" width=120 height=90 frameborder="no" scrolling="no"></iframe> この形式をリンクとして表示する場合どのようにすればよろしいでしょうか?

    • 締切済み
    • XML
  • MSXML 4.0 SP2 というアップデートが出続け困ってます。

    過去ログにもあるようですが、一応[MS06-071] Microsoft XML コア サービス 4.0 用のセキュリティ更新プログラムの サポートオンラインで手順をみて直そうとしているのですが、最初でつまづきました。。。 http://support.microsoft.com/kb/927978 ここにある手順で このセキュリティ更新プログラムに関する既知の問題 • MSXML 4.0、MSXML 4.0 SP1 および MSXML 4.0 SP2 用のセキュリティ更新プログラム 927978 では、MSXML 4.0 の完全な削除はサポートされていません。このバージョンの MSXML は、サイドバイサイド モードでインストールされるためです。この問題を回避するには、以下の手順を実行します。 1. コントロール パネルの [プログラムの追加と削除] を使用して、セキュリティ更新プログラム 927978 を削除します。 2. %SystemRoot%\System32 フォルダから MSXML4.dll ファイルを削除します。 3. コントロール パネルの [プログラムの追加と削除] を使用して、以前にインストールした MSXML 4.0 を修復します。 以前のバージョンの Msxml4.dll ファイルおよび Msxml4r.dll ファイルがサイドバイサイドのフォルダおよび %SystemRoot%\System32 フォルダに復元されます。 1. コントロール パネルの [プログラムの追加と削除] を使用して、セキュリティ更新プログラム 927978 を削除します。 自分にパソコンにはセキュリティ更新プログラム 927978がありません。10回くらいインストールはしてます。しかし、5分ほどでアップデートして下さいの表示が出てきます。 何か解決策はありますでしょうか? よろしくお願いいたします。

  • windowsアップデートが失敗します。

    Microsoft XML コア サービス 4.0 Service Pack 2 for x64-based Systems 用セキュリティ更新プログラム (KB954430) Microsoft XML コア サービス 4.0 Service Pack 2 for x64-based Systems 用の更新プログラム (KB973688) 上記2つが何度アップデートしても失敗します。 調べてみたところ「C:\Windows\System32\msxml4.dll」が関係しているようで 存在を確認したところ下記のファイルはありますがmsxml4.dllがありません。 ・msxml3.dll ・msxml3r.dll ・msxml6.dll ・msxml6r.dll msxml4.dllが無いのでアップデートに失敗している?と思っているのですがmsxml4.dllは どこからダウンロードできますか? 試しに「msxml4.dll」でググったのですがダウンロードサイトがたくさん見つかりどれを 入れればいいのか逆に不安です・・・

  • MSXML3でerror: 'C2065 IID_IXMLDOMSelection' :定義されていない識別子です。 が出てコンパイルできない。

    #import "C:\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("MSXML2") rename("EOF", "EndOfFile") #import "msxml3.dll" using namespace MSXML2; というようにMSXML3をimportし以下のようなソースを 書いたのですがコンパイルエラーになってしまいます。 IXMLDOMDocumentPtr pDoc; IXMLDOMNodeListPtr pNodeList; pDoc.CreateInstance(__uuidof(DOMDocument30)); pDoc->put_async(VARIANT_FALSE); pDoc->validateOnParse = FALSE; pDoc->load( _variant_t(XMLファイル) ); pNodeList = pDoc->selectNodes("//rs:data"); IXMLDOMSelection *pIXMLDOMSelection=NULL; pNodeList->QueryInterface(IID_IXMLDOMSelection, (void**)&pIXMLDOMSelection ); ヘッダがないとよく出てくるエラーだと思いMSDNで調べたらmsxml2.hというヘッダがあるようなことが書かれていました。 そこで #include <msxml2.h> というコードを追加したのですが"見つかりません"と言われてしまいます。 http://cvs.sourceforge.net/viewcvs.py/libxml2-pas/dom2/Attic/MSXML3.pas?rev=1.3 上記のサイトに IID_IXMLDOMSelection: TGUID = '{AA634FC7-5888-44A7-A257-3A47150D3A0E}'; という記載がありこれが見つからないのではと思っていますがどうしたらよいのか分かりません。 アドバイスお願いします。

    • ベストアンサー
    • XML
  • DOSコマンドラインからxmlファイル整形したい

    こんにちは。 Windows のコマンドライン(正確にはバッチファイルで)、指定した xml ファイルを整形する方法を探しています。 整形方法は適当でよいですし、検証機能はなくても構いません(あっても別にいいです)。 現状、XMLがまったくの改行なしでベタ打ちされているので、多少は整形しないと、というレベルです。後々のファイル処理がややこしくならないように。 簡単に準備できるもの、コマンドもシンプルで、オプションなども複雑でないものがいいのですが、なにかいいプログラムなどご存じでしたら教えてください。XMLファイルは最大で10MBくらいあるかもしれません。

  • XMLへDOMでタグの追加

    次のようなXMLにDOMで、タグを追加しようとしているのですが、 追加される場所が思った所に追加されません。 正常XMLにようにしたいのですが、どうすれば良いでしょうか? --元XML----------------- <root> <item>a</item> <item>b</item> </root> --結果XML----------------- <root> <item>a</item> <item>b</item> <info>xxxx</info> </root> --正常XML----------------- <root> <info>xxxx</info> <item>a</item> <item>b</item> </root> -- プログラム ---------------- MSXML::IXMLDOMDocumentPtr xmlDoc = NULL; MSXML::IXMLDOMNodeListPtr pNodes; MSXML::IXMLDOMNodePtr pNode; MSXML::IXMLDOMElementPtr pElem; xmlDoc.CreateInstance ("Msxml2.DOMDocument"); xmlDoc->load( ファイル名 ); pNodes = xmlDoc->selectNodes(L"/root"); pNode = pNodes->Getitem(0); pElem = xmlDoc->createElement(L"info"); pNode->appendChild( pElem ); 環境:WinXP+IE7+VC6

    • ベストアンサー
    • XML

専門家に質問してみよう