XMLファイルで私のためにいくつかのデータを操作するスクリプトを作成しようとしています。私はVBScriptをかなり新しくしていますが、VB.NETとVBAのバックグラウンドを持っているので、自分が何をしているのか分かります。ダミー用のVBScriptでXMLノードをナビゲートする
私が探しているものがあるかどうかを確認するために、各行のInStr()などを呼び出すのではなく、ファイルをナビゲートする方がよいと思いました。私の最初のアイデアは、VB.NETでSystem.XMLから見たいくつかのメソッドを使用することでした。なぜなら、ノード内で関数とメンバーをナビゲートするのを見ていたからです。
これを調べた後、Webページ上で実行されていない名前空間(System.XMLなど)をVBScriptにインポートする方法が見つかりませんでした。私はこれを探して時間を費やすのではなく、他の選択肢を探すことにしました。
XMLファイルのノードのナビゲートを具体的に扱うメソッドやオブジェクトを使用して、他にも必要なことができます。私は、これらの「システム」のいくつかの一般的な例が、DOMとXPathのように見えることを学びました。
私はXPathを調べて始めました(私はXPathがDOMより優れていると考えていたので、いくつかの場所で:Traversing all nodes in an XML file with VBScript)。私はvbscriptでXPathの基礎を書き留めることができませんでした。パスなどのシンタックスに関する構文がたくさんありますが、VBScriptでその構文を実際に呼び出す方法の基本を説明するものは何も見つかりませんでした。そこで次の選択肢に移りました。
私は、DOMに関する多くの少し異なる記事/質問/ etcを見つけました。だから私は試してみました。それらのうちの1つが働いたわけではありませんが、すべて私にエラーを与えました。ほとんどの場合、DOMオブジェクトは決して正しくロードされないように見えました。
MSDN: a beginner's guide to XML DOMから::これは失敗を毎回返さ
Set objParser = CreateObject("Microsoft.XMLDOM")
Dim xDoc As MSXML.DOMDocument
Set xDoc = New MSXML.DOMDocument
If xDoc.Load("C:\My Documents\cds.xml") Then
msgbox("Success!")
Else
msgbox("Failure!")
End If
ここで私はこのために試みている方法のほんの一部です。
:dim xmlDom
set xmlDom = createobject("MSXML2.DOMDocument")
xmlDom.async = false
xmlDom.load ("C:\MyFileLocation\MyFile.xml")
、その後、私はそれがxmlDom.documentElement内の各ノード名のメッセージボックスのように働いたかどうかを検出するためにいくつかのことを試してみました。
私はそれらのほとんどを覚えていないので、他の多くのことを試みました。
私は単に何を試すことができるのか、なぜこれが私のために働いていないのか分かりません。私は単純に別の方法を試すことができますが、それでも構文が使えるのは失われてしまいます。
私の質問は次のとおりです。スクリプトをウェブページなどに埋め込まずに、VBScriptを使用してXMLファイルをナビゲートするにはどうすればよいですか?私は極端な基礎を知る必要があります。
これは簡単に利用できる情報なので、私の質問はおそらく愚かであるように思えますが、私の人生は本当に不可能です。基本的なことを見つけることができます。VBScriptだけを使ってノードをナビゲートする方法を理解する必要があります。 HTMLやASPファイルなど)。ここで
最初の方法は、VBA用に書かれているため、VBScriptでは決して機能しません。それは違った風味です。 VBScriptでは、 'Dim XDoc As MSXML.Document'のような変数に型を割り当てることはできません。それを薄暗くして、2番目の方法のように新しく作成した文書で設定する必要があります。 2番目のメソッドのエラーはパス名です。これは文字列 'xmlDom.load" C:\ MyFileLocation \ MyFile.xml "でなければなりません。あなたの質問は無知ではない、VBScriptとXMLデータは少し難しい。この方法はあまり明確ではなく、あまりよく説明されていません。 fmunkertの例はあなたに良いスタートを与えるでしょう。 – AutomatedChaos
実際には、第2の方法のエラーは、ここで私が信じているコードを転送する私のエラーでした。私はかなり前に文字列として試したと確信しています。しかし、それを指摘してくれてありがとう!また、vb vs vbscriptについて少し感謝します.msdnページでは、最初の行はvbscriptで例を示し、残りはvbaにあります。ありがとうmsdn:/ – user1167662