すいません。調べても分からないので質問します。
JAVASCRIPTでXMLの操作をしています。
デバッグのため、XMLの全体を表示したいのですが、どのプロパティを使ったら良いか分からないのです。
クライアント側でDOMを使ってXMLの中身を修正した後に
xmlHttp.responseTextをalertで表示するように修正後のXMLの中身を見たいのです。
xmlData = xmlHttp.responseXML;
としたときのxmlDataからXMLをテキストで取り出すプロパティがあるのではないかと思うのですが見つけられません。
使用しているのはmac os x 10.6のsafari4.04です。
他のブラウザなら出来るなどの情報でも構わないのでご存じの方がおりましたらお願いします。
No.1
- 回答日時:
とりあえず、
Internet Explorer以外なら、
alert(xmlData.toSource());
でアラートできますが、英数以外は化けてる(コード化表示)し、
長いと見難いし....ちょっとしたデバッグならこれでいけます。
XMLオブジェクトをパースしてくれるjavascriptライブラリーや、
オブジェクトをテキストダンプするライブラリーがあるので、そ
ちらを使うほうが便利です。
(JKL.ParseXML)<=Ajaxもやってくれるすぐれ物
http://www.kawa.net/works/js/jkl/parsexml.html
(XML.Objtree)<= JKL.ParseXMLの後継
http://www.kawa.net/works/js/xml/objtree.html
JKL.Dumper (オブジェクトをJSON形式に変換)
http://www.kawa.net/works/js/jkl/dumper.html
ありがとうございます。
残念ながら、safariとChromeではmethodが無いと言われてしまいました。
IEとFireFoxは他のエラーで表示されない。
XML.Objtree辺りも少し調べてみます。
昔IEでやったときは.xmlかなんかで取れたんですけどね。
こんなところで引っかかるとは思いませんでした。
No.2
- 回答日時:
すみません。
記憶違いでした。toSource()ではXMLオブジェクトは表示できません。どこかで見た気が
したのですが、おそらく普通のオブジェクトに変換した後、見たんだったと思います。
<昔IEでやったときは.xmlかなんかで取れたんですけどね。>
IEだと
xmlData = new ActiveXObject("Microsoft.XMLDOM");
のxmlDocにXMLをロードして、自在に操ったり、XPATHで抽出したり
できます。(機能はECMA準拠の普通のjavascriptより機能豊富です)
http://msdn.microsoft.com/ja-jp/library/aa468547 …
http://msdn.microsoft.com/ja-jp/library/ms256471 …
ライブラリー使わないとなると、safari4.04なら、前の部分がわかりませんが、
xmlData = new XMLHttpRequest();で取得したXMLオブジェクトとか
xmlData = document.implementation.createDocument("", "", null)
でロードしたXMLオブジェクトなら。
DOM要素として扱えるので、document.xxx系の関数で扱いエレメントを
参照するか
https://developer.mozilla.org/ja/DOM/document
最近だとdocument.evaluate()関数でノードリストの取得や、
XPATHが使えます。
https://developer.mozilla.org/ja/Introduction_to …
いずれも結構ややこしく、ずばっと
一括テキスト表示(インデント付き)をやりたかったら、
自分でコードを組まなければなりません。
確か、前に作ったやつがあるので、探しておきます。
みつかったら載せますが、ライブラリー使ったほうが早いですよ。
ライブラリでいけました。
DOMになっていたので、JSオブジェクトに変換してから
ソースにしているのでちょっとバカっぽいですが。
とりあえず見れれば十分なので助かりました。
ありがとうございました。
No.3ベストアンサー
- 回答日時:
safariでうまくいくかどうかわかりませんが、
これでどうです。(IE8とFirefox3.6では出来てました)
XMLパースエラーのハンドリングはさぼっています。
var xmlDoc = (window.ActiveXObject)?new ActiveXObject('microsoft.XMLDOM'):document.implementation.createDocument("", "", null);
xmlDoc.async=false;
xmlDoc.load("orders.xml");
//上記の部分はあなたのXMLオブジェクトに合わせて変えてください。//
document.write("<p /><h1>ツリー構造の表示</h1><p />")
printElement("",xmlDoc.documentElement);
function printElement(indent,node) {
var tab=""
var i;
if (node.nodeType == 3) {
document.write("<br />" +indent + node.nodeValue);
}
else {
document.write("<br />" +indent + "[" + node.nodeName + "]");
for(j = 0; j < node.attributes.length ; j++){
document.write("<br />" +indent + node.attributes[j].nodeName
+":"+ node.attributes[j].nodeValue);
}
for (i = 0; i < node.childNodes.length; i++) {
printElement(indent+tab, node.childNodes[i]);
}
document.write("<br />" +indent + "[/" + node.nodeName + "]");
}
}
度々ありがとうございました。
教えて頂いたURLをちょっと見ましたが、
一生懸命調べるよりもライブラリを当たった方が早そうです。
上記の関数もデバッグには役立ちそうなので試してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- アプリ おすすめのパスワード管理アプリを教えてください。(iOSとWindows対応) 4 2023/01/19 02:08
- WordPress(ワードプレス) ワードプレスにて .xmlファイルの使い方をご存知の方、よろしくお願いいたします。 2 2022/09/30 00:55
- 数学 この数学問題、スマートに解く方法を教えてください。 3 2023/01/26 23:17
- デスクトップパソコン キャプチャーボードDRECAP DC-HC4のドライバー 1 2022/05/30 15:40
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- HTML・CSS 疑似要素で背景画像に指定したSVG画像の色変更 2 2023/01/30 22:45
- 計算機科学 化学の問題です。 3 2022/07/09 00:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptでオブジェクトを識...
-
Webページ中の javascript をVB...
-
Vba SelStart、SelLen教えてく...
-
正整数の半角数字かどうか判定する
-
「終了していない文字列型の定...
-
初心者です。gulpでコンパイル...
-
javascript:void(0)とは何でし...
-
表示ページによって、aタグ内の...
-
ASPでエクセルの起動
-
VC#でテキストボックスに変数の...
-
C#でボタン名を変更しても動く
-
JavascriptでのExcel起動について
-
現在日付を初期値にするには
-
正規表現について
-
階層化されたメニューの作り方
-
Access VBAで、数字だけをチェ...
-
クロスドメインでクッキーの取得
-
c言語で「文字列(最大80文字)お...
-
ネットスケープでJavaScriptの...
-
JSでファイル数取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローカルのレジストリを読みたい
-
Webページ中の javascript をVB...
-
jquery か javascript で json ...
-
エクセル2010のvbaについて
-
javaScriptでグローバル変数に...
-
画面間でのJavaScrip...
-
文字を移動させその位置を表示...
-
フォルダ内のファイル名を取得...
-
オライリーのプログラミングPHP...
-
ASP.NETでURLにマッピングされ...
-
CSSのクラスを動的に変更 classで
-
イベントevt?evt.target:event....
-
一定時間経つと画像を消す方法
-
クラス デフォルトプロパティの...
-
event.srcElementの動的設定
-
「リンク」と「ハイパーリンク...
-
VBAの引数の指定 カッコとイコ...
-
strictモードでなぜエラーにな...
-
JSの「document.getElementById...
-
Shell.ApplicationでのIEオブ...
おすすめ情報