• 締切済み

VbscriptでXMLの値取得ができません。。

javascriptでXMLを組み立て、vbScriptで中身を取得しようとしていますが、 中身を取ることができません。 考えられる原因がありましたら教えていただけますでしょうか。 XML--------- <xml>  <data>   <xml>    <Head>     <cd_kaisha>1</cd_kaisha>     <cd_jigyosho>1</cd_jigyosho>     <cd_shain>1234</cd_shain>     <cd_tenmei></cd_tenmei>     <lit_memo></lit_memo>    </Head>    <Line>     <cd_buhin>14921</cd_buhin>     <su_hat></su_hat>    </Line>   </xml>  </data> </xml> vbScript------------- Set xmlReceive = Server.CreateObject("Microsoft.XMLDOM") xmlReceive.Load(Request) ' ヘッダー部項目を取得 Set xmlHead = xmlReceive.selectSingleNode("//Head")   '(1) Set xmlHeadChild = xmlHead.selectSingleNode("//cd_kaisha") '(2) Set strCdKaisha = xmlHeadChild.NodeValue '(3) (1)では次のように取得されています。 <Head> <cd_kaisha>1</cd_kaisha> <cd_jigyosho>1</cd_jigyosho> <cd_shain>1234</cd_shain> <cd_tenmei></cd_tenmei> <lit_memo></lit_memo> </Head> (2)も次のように取得されています。 <cd_kaisha>1</cd_kaisha> (3)が取得されません。空文字が取れているようです。 xmlHeadChild.hasChildNodes xmlHeadChild.firstChild.NodeType xmlHead.item(0).text xmlHeadChild .text も空になってしまい、取れませんでした。

  • XML
  • 回答数1
  • ありがとう数3

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

ウォッチしてみた感じだと、 strCdKaisha = xmlHeadChild.text ――とか。

area501
質問者

補足

osamuvさん 回答ありがとうございます。 xmlHeadChild.text もやっているのですが、取れません。。 他に考えられることはありますでしょうか。

関連するQ&A

  • XMLファイルのattribute値を取得するには?

    ASP内の処理でwebからXMLファイルをLoadし、 そこからattribute値を取得するにはどうすればよいのでしょうか? ちなみにXMLファイル取得は成功しています。 使用スクリプトはVBscriptです。 以下がロードしたXMLファイルの内容です。 <?xml version="1.0" encoding="Shift_JIS" ?> <xml> <AAA width="2.15" <--この2.15と height="4.60" <--この4.60を取得したい /> </xml> 以下が今、途中まで作っているソースです。 <% language = "VBscript" %> <% Dim XmlDoc, objXmlError, objXmlNode Set XmlDoc = CreateObject("MSXML2.DOMDocument") xmlDoc.async = false XmlDoc.setProperty "ServerHTTPRequest", true XmlDoc.load("http://localhost/test.xml") Set objXmlNode = XmlDoc.selectNodes("/root/AAA") ここから先がよくわからない %>

  • VBscriptでXMLのファイルから、XPathで指定したデータを読

    VBscriptでXMLのファイルから、XPathで指定したデータを読み込みたいと思っていますが、 XMLファイル中に指定したXPathのタグがない場合、"オブジェクトがありません。" というエラーになってしまいます。 このような場合、どのような処理にすれば良いのでしょうか?親タグ、子タグなどを総当りで、存在するか調べないといけないのでしょうか?以下のようなスクリプトです。 Set xmlDoc = WScript.CreateObject("MSXML2.DOMDocument") With xmlDoc .Async = False .Load("aaaa.xml") xpath01 = "/tag1/tag2/tag3" Set xmlNode = .selectSingleNode(xpath01) MsgBox xmlNode.text End With

  • XMLの名前空間について

       どなたか教えてください。 例 xml <a xmlns="test"> <b attribute="test"> <c attribute="test2"> </c> </b> </a> というxmlをMSXML4.0を参照設定している   エクセルVBAでロードし、   Dim testdom as DOMDocument Dim testNode as As IXMLDOMNode  testdom.loadXML(test.xml) set testNode = testdom.selectsinglenode("/a/b")  ノードを取得し testNode.xml を取得すると、取得したxml内に、 先頭に宣言した、xmlns="test"が自動で付加された状態 で取得されるのですが、それはいたしかたない物なのでしょうか? 名前空間の宣言なしで取得することは可能なのでしょうか? どなたか教えてください。宜しくお願いします。

  • XMLファイルのattribute値がうまく取得できません。。

    ASP(VBScript)内の処理でwebからXMLファイルをLoadし、 そこからattribute値を取得しようとしているのですが、 どうもうまくいきません。。 XMLファイルのデータ取得自体はうまく出来ています。 -------------------------------------- ' 以下、LoadしたXML本文です。 <?xml version="1.0" encoding="Shift-JIS"?> <info> <title>タイトル1</title> <text no="100"> <--この100が取得したい <note>本文1</note> </text> <text no="200"> <--この200が取得したい <note>本文2</note> </text> <title>タイトル2</title> <text no="100"> <--この100が取得したい <note>本文1</note> </text> <text no="200"> <--この200が取得したい <note>アナログ本文</note> </text> </info> ' 以下、VBScript本文です <% language = "VBscript" %> <% dim objXml Set objXml = Server.CreateObject("Microsoft.XMLDOM") objXml.load("http://localhost/text.xml") Call Disp(objXml.childNodes) Public Sub Disp(ByRef Nodes) Dim cNode For Each cNode In Nodes If cNode.parentNode.nodeName = "text" Then If Not cNode.attributes Is Nothing Then response.write cNode.getAttribute("no") '<-- 表示されない。。 End If End If Next End Sub %> -------------------------------------- 最終的にやりたい事としては、 DBから text no を取得して、その no が一致したものを表示、 といった事をやりたいと考えています。 (完全に不一致の場合は、タイトルも表示させない) 取り急ぎ、表示されない理由がどなたかお分かりでしたら ご教授願えないでしょうか・・・? 以上、よろしくお願いいたします。

  • Excel-VBAでXMLの複数ノードの取り出し

    すみません、いつも、いろいろな方に助けて頂いていますが、また、初歩的な質問をさせて頂きます。 Excel2007のVBAでXMLの扱いが良くわかっておりません。 以下のプログラムで複数ItemのASINを出力したいのですが、うまくいきません。 XMLがきちんと取得できているのはWireSharkでキャプチャして確認できております。 VBAで表示出力するのがうまくいきません。ご教授方よろしくお願いします。 selectSingleNodeで一つの場合はうまく取り出せています。複数ノードの場合にSelectNodesの使い方に問題がありますでしょうか? 型の宣言などに誤りがありますでしょうか? また、基本的なことですが、MSXML2を使おうとしたら、Excel2007で使えませんでした。 XMLDOMは、サポート切れ?で古いので、MSXML2を使うのが良いとWebで見ました。 DLLなどが必要な気がしているのですが、よくわかっていないのでご教授頂きたいです。 すみませんが、よろしくお願いします。 *****VBAプログラム(抜粋)****** Dim xml As Object, xmlItems As Object, objPrice As Object 'XML オブジェクト作成 Set xml = CreateObject("Microsoft.XMLDOM") xml.async = False xml.Load URI Set xmlItems = xml.SelectNodes("ItemLookupResponse/Items/Item") For Each objPrice In xmlItems ' ASIN If Not objPrice.SelectSingleNode("ASIN") Is Nothing Then curWS.Cells(rowIndex, ASINCol) = objPrice.SelectSingleNode("ASIN").text End If Next *****取得したXML(抜粋)****** <ItemSearchResponse > <Items> <Item> <ASIN>111</ASIN> </Item> <Item> <ASIN>222</ASIN> </Item> <Item> <ASIN>333</ASIN> </Item> </Items> </ItemSearchResponse>

  • VBSでXMLを操作したい

    現在Webアプリケーションの簡単なものを作成しています。 データベースはXMLで出来上がっているのでそれを使いたいのですが、入力フォームに入れてもらったデータをXMLに変換してXMLデータベースに追加、保存しようと思います。 一応フォームに入力したものをXMLデータとして出力までは考えられたのですが、既存のXMLを読み出す方法と追加する方法、保存する方法がよくわかりません。 よろしくお願いいたします。 <html> <head> <title>入力フォーム</title> <script type="text/vbscript"> <!-- Option Explicit dim xmldoc Sub window_onload() set xmldoc=createObject("MSXML2.DOMDocument") xmldoc.async=False xmldoc.loadXML("<?xml version='1.0'?><全体/>") End Sub Sub makeXml() dim myInfoElement,myDataElement,myDataText dim ret1,ret2,ret3,ret4 set ret1=xmldoc.createTextNode(vbCRLf) xmldoc.documentElement.appendChild(ret1) set myInfoElement=xmldoc.createElement("名簿") set ret2=xmldoc.createTextNode(vbCRLf) myInfoElement.appendChild(ret2) set myDataElement=xmldoc.createElement("名前") set myDataText=xmldoc.createTextNode(myForm.myName.value) myDataElement.SetAttribute "年",myForm.myAge.Value myDataElement.appendChild(myDataText) myInfoElement.appendChild(myDataElement) set ret3=xmldoc.createTextNode(vbCRLf) myInfoElement.appendChild(ret3) xmldoc.documentElement.appendChild(myInfoElement) set ret4=xmldoc.createTextNode(vbCRLf) xmldoc.documentElement.appendChild(ret4) myForm.xmlSource.value=xmldoc.xml End Sub --> </script> </head> <body> <form name="myForm"> 名前:<input type="text" size="30" name="myName"><br> 年:<input type="text" size="10" name="myAge"> <button onClick="makeXml()">XMLの作成</button><br> <textarea name="xmlSource" cols="60" rows="15"></textarea> </form> </body> </html>

  • htmlファイルに記載するvbscriptにて

    社内LAN上のとある共有フォルダにて vbscriptの記述を行ったHtmlファイルを保管し、 とあるexcelファイルを開くようにしようとしています。 そのHTMLファイルを自分のHDDに保管した場合、そのexcelファイルは開くのですが、 社内LAN上の共有フォルダに保管した場合、このアンケート集計用 Excel ファイルを取得できません とエラーメッセージが出てしまいます。 どのように記述を修正すればよいか、アドバイスいただけないでしょうか? WINDOWS7(32bit)IE9.0です。 <html> <head> <title>アンケート入力用ファイル</title> <script language="VBScript"> Sub kakikomi_onclick On Error Resume Next Set objwsh = CreateObject("WScript.Shell") Set objxls = CreateObject("Excel.Application") myFile = "\\○○○/△△△.xls" Set objbok = objxls.Workbooks.Open(myFile) With objbok.Worksheets(1) If objbok is Nothing Then MsgBox myFile & vbCrLf & "このアンケート集計用 Excel ファイルを取得できません." & vbCrLf & "指定先にこのファイルが存在しない可能性があります." & vbCrLf & vbCrLf & "HTML 形式の場合,イントラネットのセキュリティレベルを下げることで," & vbcrlf & "この問題を解決できる可能性があります.", vbCritical Set objxls = Nothing Set objwsh = Nothing Exit Sub End If 以下略

  • ASP上のVB SCRIPT記述(result setからcountを取得する方法)

    初心者です。 ASP上のVB SCRIPT記述(result setからcountを取得する方法)が分かりません。 Set rsRet = MyConn.Execute(strSql) nCltCnt = 0 If Not rsRet Is Nothing Then nCltCnt = rsRet.Count End If という記述をしたのですが、エラーになります。メッセージは以下の通りです。 ●エラー タイプ Microsoft VBScript 実行時エラー (0x800A01B6) オブジェクトでサポートされていないプロパティまたはメソッドです。: 'Count' xxx.asp, line 110 サポートされていないのであれば、result setからの件数の取得を教えて下さい。 どなたかアドバイス宜しく願います。

  • xmlの値の取得等について。

    (XML) <?xml version="1.0" encoding="UTF-8"?> <価格> <メーカ id="toyota"> <車種 id="wish"> <価格>200万</価格> <燃費>30km</燃費> </車種> <車種 id="sai"> <価格>250万</価格> <燃費>40km</燃費> </車種> </メーカー> <メーカー id="honda"> <車種 id="fit"> <価格>159万円</価格> <燃費>50km</燃費> </車種> <車種 id="crz"> <価格>236.5万円</価格> <燃費>40km</燃費> </車種> </メーカ> </価格> (HTML) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> </head> <body> <script> userFunc(); function userFunc() { xmlAttr = xmlDocs.getElementsByTagName( 'メーカ' ); if ( xmlAttr[0].hasChildNodes() ) { manufacturerID = xmlAttr[0].getAttributeNode( 'id' ).value; alert( manufacturerID ); } } </script> </body> </html> 参考 XML にあります メーカタグ id は、取得できるのですが、 その 1 階層目(車種)のidの取得方法や、更に 2 階層目の価格と燃費の値を取得方法が、 上手くいきませんでした。 プルダウン等で、メーカを指定して、車種一覧をプルダウンに表示。 その車種をプルダウンより選択すると価格、燃費が表示されるようにしたいと考えています。 どうぞ、みなさま、よろしくお願いいたします。

  • XMLの値取得について

    vb2005、XMLREADERを使用し以下の構造のXMLを読み込みました --------------------------- <temperature> <max> <celsius>27</celsius> <fahrenheit>80.6</fahrenheit> </max> <min> <celsius>21</celsius> <fahrenheit>69.8</fahrenheit> </min> </temperature> ---------------------------- "while reader.read"として 上から順番に読み込んでreader.localnameで分岐を入れることで最後には行き着くのですが、 上記の<temperature><max><celsius> の値を直接取り出す方法は ありますでしょうか。 もしくはもっと要領の良い方法があれば教えてください

専門家に質問してみよう