0
私の質問は、hereと同じです。しかし、それはExcel-VBA用ではありません。VBAでXMLファイルのCDATAセクションから特定の情報を抽出する方法は?
私の質問は、hereと同じです。しかし、それはExcel-VBA用ではありません。VBAでXMLファイルのCDATAセクションから特定の情報を抽出する方法は?
実際には、テキストプロパティは、CDATAのエスケープ文字である<![CDATA[]]>
を解決します。したがって、実際にはコードは非常にシンプルです。ここに例があります。
Sub Test()
Dim sXml As String
sXml = "<Root><SomeData>foo</SomeData>" & _
"<SomeCDATA><![CDATA[<img src=""http://l.yimg.com/a/i/us/we/52/26.gif""/>]]>" & _
"</SomeCDATA></Root>"
'Tools->References->Microsoft Xml v.60
Dim dom As MSXML2.DOMDocument60
Set dom = New MSXML2.DOMDocument60
dom.LoadXML sXml
Debug.Assert dom.parseError = 0
Dim xmlSomeCData As MSXML2.IXMLDOMElement
Set xmlSomeCData = dom.SelectSingleNode("Root/SomeCDATA")
Debug.Print xmlSomeCData.Text
'* or your suggestion :)
Dim xmlSomeCDataSection As MSXML2.IXMLDOMCDATASection
Set xmlSomeCDataSection = dom.SelectSingleNode("Root/SomeCDATA/text()")
Debug.Print xmlSomeCDataSection.Text
End Sub
上記のコードの出力<img src="http://l.yimg.com/a/i/us/we/52/26.gif"/>
'''Tools-> References->マイクロソフトのXml v.60''は何をしますか? – Aqqqq
Mirosoft Xmlライブラリにツールリファレンスを追加する必要があるとのコメントにすぎません。それ以外の場合、コードはコンパイルされません。だから、IDEで、上のメニューバーに移動し、ツールを取ってからサブメニューから参照を取得し、Microsoft Xml v6.0が見つかるまでスクロールダウンするダイアログボックスから参照して、その横のチェックボックスをオンにします。 –
コンパイルエラーが発生しました:ユーザー定義型が定義されていません。 (コメントを追加した後) – Aqqqq