- PR -

XSLでソートしたXMLデータをDOMで触りたい(JS)

1
投稿者投稿内容
hiro
会議室デビュー日: 2001/10/12
投稿数: 13
お住まい・勤務地: 東京
投稿日時: 2001-10-23 18:11
いつもお世話になります。Hiroです。現在Javascriptを使って
HTMLよりDOMオブジェクトを叩いてXMLデータを取ってくる事を
しています。データはSortをかけたかったのでXSLを別ファイルにして
XML DATAに対し transformNodeでソートを掛けました。

返ってきた値にalertでデータを表示させるとちゃんと変換されています。
がそれを今度はDOMオブジェクトで読もうとするともうオブジェクトではない
(文字列扱い)と怒られてしまい せっかくソートしたXMLデータを
作ったのにそれに対しDOMで触れないという事になってしまいました。

もう一度DOMオブジェクトにしてあげたいんですがどうすれば
よいでしょうか?皆様 どうぞよろしくお願い申し上げます。

//以下がソースです。
var objXMLDOM=new ActiveXObject("Microsoft.XMLDOM");
var objXSLSort=new ActiveXObject("Microsoft.XMLDOM");
var objXMLDoc=new ActiveXObject("Microsoft.XMLDOM");
objXMLDOM.async=false;
objXSLSort.async=false;

objXMLDOM.load("./xml/data.xml"); //XMLデータの読み込み
objXSLSort.load("./xml/sort.xsl");//ソートXSLの読み込み

//ソートの開始
objXMLDoc=objXMLDOM.transformNode(objXSLSort);
aleret(objXMLDoc.document.Element.nodeName);//ERROR
hiro
会議室デビュー日: 2001/10/12
投稿数: 13
お住まい・勤務地: 東京
投稿日時: 2001-10-23 18:13
aleret->alertです。すいません。
井上孝司
ぬし
会議室デビュー日: 2001/09/08
投稿数: 668
お住まい・勤務地: 東京都
投稿日時: 2001-10-23 19:37
もしハズしてたらすみません。
XSLT をかまして変換した後のデータは、やっぱりタグ付けされた XML
ですよね。それでしたら、それを読み込むのに load じゃなくて loadXML
メソッドを使ったら駄目でしょうか。
_________________
www.kojii.net
hiro
会議室デビュー日: 2001/10/12
投稿数: 13
お住まい・勤務地: 東京
投稿日時: 2001-10-24 16:56
inopeeさん いつも返答ありがとうございます。
 objXMLDoc.loadXML(objXMLDOM.transformNode(objXSLSort));
以上のようにtransformNodeを掛けてtext扱いになったのをさらにloadXMLをかけて
オブジェクトにする事が出来ました。ありがとうございました。
あともう一つお聞きしたいのですが

alert(objXMLDoc.documentElement.childNodes.item(0).childNodes.item(0).text);
とするとノードの中の値が取得出来ますが int型で何番目のタグと指定するのでは
なく childNodes.item("タイトル").text のようにタグ名を指定して取得する
方法はありますか? 例などを見るとループさせて
childNodes.item(ループカウント).baseName=="タイトル"と
if文で調べて処理をしているようなのですが。

以上 何度もお聞き申し訳ありません。よろしくお願いします。
javascriptでのDOMのたたき方の本を今日の帰り買って帰ろうと思います^^;
井上孝司
ぬし
会議室デビュー日: 2001/09/08
投稿数: 668
お住まい・勤務地: 東京都
投稿日時: 2001-10-24 19:31
getElementsByTagName というメソッドを使ったことがありますが、これ、
確か同名要素が複数あると、全部を選択してノードではなくノードセット
を返してしまいます。そこで、その結果に対してインデックス番号を改め
て指定してやり、特定のノード (IXMLDOMNode) を選択するという方法な
ら、過去に使ってみたことがあります。

ひょっとすると、もっと頭のいい方法があるかもしれません。
_________________
www.kojii.net
miki
大ベテラン
会議室デビュー日: 2001/09/21
投稿数: 174
お住まい・勤務地: 東京都八王子市
投稿日時: 2001-10-25 09:54
XPathが使えるかもしれませんね。

http://www.atmarkit.co.jp/fxml/rensai/msxml02/msxml03.html
hiro
会議室デビュー日: 2001/10/12
投稿数: 13
お住まい・勤務地: 東京
投稿日時: 2001-10-25 10:12
いつもお世話になります。Hiroです。

getElementsByTagName で 取得できました^^
さっそくHPで使ってみようと思います。

今回の場合は同じタグを複数存在しないデータ群なので
問題は起こりませんが 今後を考えXPATHも 覗いてみる事にします。
mikiさん inopeeさん どうもありがとうございました^^
1

スキルアップ/キャリアアップ(JOB@IT)