APIから返されたXMLの解析に問題があります。私の主なポイントは、ノードの1つ(xPathを使用)の「使用済み」および「制限」プロパティを取得することです。VBAでのXML解析
<?xml version="1.0" encoding="UTF-8"?>
<QueryResultRecords xmlns="http://www.xmlns.loc/sub" type="application/some.app.query+xml" href="https://my.api.call.com/query?has_cheezburger" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xmlns.loc/sub http://my.api.address.com/schema/master.xsd">
<OnlyNodeType Name="name1" link="hhttp://my.api.address.com/a5d11b73dffe" Used="240640" Limit="0" />
<OnlyNodeType Name="name2" link="http://my.api.address.com/03b11042ccd4" Used="10240" Limit="409600" />
<OnlyNodeType Name="name3" link="http://my.api.address.com/1cf43be18e2e" Used="11934947" Limit="20971520" />
</QueryResultRecords>
私は大体どのようにXMLDOMの作品を理解する:
今の私も
ザ・返されたXMLは次のようになり、私は助けを求めてくるので、ここでは、全体のXMLツリーを探索するために管理していませんVBAで、しかし、ウェブ検索、私はそれが(私はXMLDに何かを理解していなかったのxml-トリーイングの問題だと思う...明らかに動作しない、これを書くために
Dim XMLDOC As MSXML2.DOMDocument60
Dim nodelist As IXMLDOMNodeList
Set XMLDOC = New MSXML2.DOMDocument60
XMLDOC.async = False
XMLDOC.validateOnParse = False
XMLDOC.Load (myhttpresponse)
Namespace = "xmlns: 'http://www.xmlns.loc/sub' "
Call XMLDOC.setProperty("SelectionNamespaces", Namespace)
Call XMLDOC.setProperty("SelectionLanguage", "XPath")
XPath = "/"
Set nodelist = XMLDOC.SelectNodes(XPath)
For i = 0 To nodelist.Length - 1
Set Node = nodelist.NextNode
Debug.Print Node.Text
Next i
を管理しますom?)またはxmlns/xsiの問題が発生し、完全にスタックしました。
誰もがこの上で私を助けてもらえますか?
私は、あなたが私をたくさん助けたと思うありがとう:)小さな問題を、しかし:MSXML2.DOMElementとして 点心OnlyNodeTypeは、VBAで認識できないことのようです。私はMS XML v6.0をロードしましたが、とにかくそのリファレンスはありません。私はあなたの間違いを賭けましたが、まだですか? – Ariel
もちろん、私は 'IXMLDOMElement'を意味しました。 'IXMLDOMNode'を使うこともできます。ノードはDOM要素の基本型です。メソッドやプロパティは少なくなりますが、XPathクエリのすべての種類の結果に対して機能します。オブジェクトブラウザ(F2のVBA IDE)を使用して、さまざまなオブジェクトの違いを調べます。 – Tomalak
本当にありがとうございます。私は実際には '/サブである、あなたが与えたたxPath方法を修正する必要がstilla:QueryResultRecords /サブ:OnlyNodeType' – Ariel