- - PR -
DOMツリーの親の値を取得
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-04-12 17:59
はじめまして、IIS5.0+XMLで開発していて、XML初心者です。
さっそく質問なのですが、 <Root> <A> <AA>AAA</AA> <B> <BB>BBB</BB> <C> <CC>CCC</CC> <D> <E>EEE</E> <EE>EEEE</EE> </D> </C> </B> </A> </Root> 最小で上記のような構造のXMLファイルがあるとします。 サーバ側の処理(JavaScript)でXMLとXSLをtransformNodeして表示するカラクリにおいて、 次のような処理をしています。 -----aaa.asp---- var objDoc = new ActiveXObject("Microsoft.XMLDOM"); var objXSL = new ActiveXObject("Microsoft.XMLDOM"); objDoc.async=false; objXSL.async=false; objDoc.load(Server.MapPath("XXX.xml")); objXSL.load(Server.MapPath("XXX.xsl")); var obj = objDoc.documentElement.getElementsByTagName('D/E'); var obj2 = objDoc.documentElement.getElementsByTagName('ancestor::AA[last()]'); for(i=0;i<obj.length;i++) { Response.Write('obj[i].text'); //<E>の内容 Response.Write('obj2[i].text'); //-----@<E>の親である<A>の内容 } 上記の@のところで、下記のエラーが出て取得できません。 必要なトークン 'eof' が ':' を検出しました。 .//ancestor-->:<--:AA[last()] 簡単なことのような気がするのですが、悩み続けています。 ご存知な方教えていただけないでしょうか? よろしくお願いいたします。 |
|
投稿日時: 2002-04-13 01:38
デフォルトでXPath は使えますか?
obj2 関連を消して、obj だけでも正常ですか SDKのヘルプのサンプル・ソースでは、 Applies to: IXMLDOMDocument2 setProperty Method its selectNode behavior may change depending on the SelectionLanguage setting in the new document. -------------------------------------------- var xmldoc = new ActiveXObject("Msxml2.DOMDocument.4.0"); var selection; xmldoc.loadXML ("<Customer><Name>Microsoft</Name></Customer>"); xmldoc.setProperty("SelectionLanguage", "XPath"); selection = xmldoc.selectNodes("Customer/Name"); alert(selection.expr + " -- " + selection.item(0).xml); ----------------------------------------------- getElementsByTagName の引数型は tagname , expression のどちらか 確認 |
|
投稿日時: 2002-04-24 18:58
getElementsByTagNameメソッドの引数は、ノード名もしくは「*」のどちらかです。XPath式を指定することはできません。XPathを使う場合は、MMXさんの示されたサンプルのようにselectNodesメソッドを使用します。
|
1