使用MS Excel VB脚本从XML中读取特定数据

使用MS Excel VB脚本从XML中读取特定数据,xml,vba,parsing,Xml,Vba,Parsing,我是新的VB编程,我试图得到下面提到的解决方案工作 我有一个网站,它以1分钟的速度刷新,数据可以作为XML页面访问,我试图加载XML文件并解析以读取特定的行和特定的列,并更新到一张表,XML文件中的数字值和时间戳随时间和结构的变化而变化,标记、常量保持一致 要求从每行refno=XX和第1、5列读取数据 我的要求是非常频繁地读取数据,从而寻找专家建议,以及从性能角度优化代码 我已经开发了代码,可以每分钟使用停止/启动控制执行子例程,但是在XML解析中遇到了困难 未加载文档错误:文档顶层无效 我的

我是新的VB编程,我试图得到下面提到的解决方案工作

我有一个网站,它以1分钟的速度刷新,数据可以作为XML页面访问,我试图加载XML文件并解析以读取特定的行和特定的列,并更新到一张表,XML文件中的数字值和时间戳随时间和结构的变化而变化,标记、常量保持一致

要求从每行refno=XX和第1、5列读取数据 我的要求是非常频繁地读取数据,从而寻找专家建议,以及从性能角度优化代码

我已经开发了代码,可以每分钟使用停止/启动控制执行子例程,但是在XML解析中遇到了困难

未加载文档错误:文档顶层无效 我的目的是让代码逐行获取refno,然后使用标识符获取所需的列值,这将使我能够灵活地将此代码与实时应用程序生成的类似XML重用。 到目前为止,我已经在下面粘贴了用于测试场景的代码,但运气不好。 非常感谢您的帮助和指导

<ddsml xmlns:xsi="http://www.w3.org/2005/XMLSchema-instance" 
       xsi:noNamespaceSchemaLocation="/gpm/include/ddsml.xsd">
<server>
<name>AAQ-MMM-Server</name>
<version>YOTV1R14</version>
<functionality>3008</functionality>
<platform>y/OS</platform>
</server>
<report>
<metric id="BPB">
<description>BPB (Central Processor Complex)</description>
<format>report</format>
<numcols>31</numcols>
</metric>
<resource>
<reslabel>,GAQ1,MVS_IMAGE</reslabel>
<restype>MVS_IMAGE</restype>
<reslabelurl>,GAQ1,MVS_IMAGE</reslabelurl>
</resource>
<time-data>
<local-start>20010101155200</local-start>
<local-end>20140708155300</local-end>
<utc-start>20140708055200</utc-start>
<utc-end>20140708055300</utc-end>
<local-prev>20140708155130</local-prev>
<local-next>20140708155330</local-next>
<display-start locale="en-us">01/01/2001 15:52:00</display-start>
<display-end locale="en-us">01/01/2001 15:53:00</display-end>
<gatherer-interval unit="seconds">60</gatherer-interval>
<data-range unit="seconds">60</data-range>
</time-data>
<caption><var><name>BPBHPNAM</name><value>TH7</value></var><var><name>BPBHMOD</name><value>2817</value></var><var><name>BPBHMDL</name><value>713</value></var><var><name>BPBHCMSU</name><value>1473</value></var><var><name>BPBHWF</name><value>80.0</value></var><var><name>BPBHLMSU</name><value>61</value></var><var><name>BPBHGNAM</name><value>N/A</value></var><var><name>BPBHIMSU</name><value>1133</value></var><var><name>BPBHCAP</name><value>0.0</value></var><var><name>BPBHLMAX</name><value>390</value></var><var><name>BPBHGLIM</name><value>N/A</value></var><var><name>BPBHGL4H</name><value></value></var><var><name>BPBHRMSU</name><value>14400</value></var><var><name>BPBHRGRP</name><value>N/A</value></var><var><name>BPBHGAUN</name><value>N/A</value></var><var><name>BPBHCPU</name><value>00000000000FC826</value></var><var><name>BPBHCPNO</name><value>13</value></var><var><name>BPBHICNO</name><value>0</value></var><var><name>BPBHIFAN</name><value>0</value></var><var><name>BPBHYCFN</name><value>4</value></var><var><name>BPBHIFLN</name><value>0</value></var><var><name>BPBHSUPN</name><value>13</value></var><var><name>BPBHPANO</name><value>16</value></var><var><name>BPBHWAIT</name><value>NO</value></var><var><name>BPBHPMSU</name><value>3</value></var><var><name>BPBHDEDC</name><value>3</value></var><var><name>BPBHDEDA</name><value>0</value></var><var><name>BPBHDEDI</name><value>0</value></var><var><name>BPBHSHRC</name><value>10</value></var><var><name>BPBHSHRA</name><value>0</value></var><var><name>BPBHSHRI</name><value>13</value></var><var><name>BPBHVCPU</name><value>NO</value></var><var><name>BPBHWMGT</name><value>YES</value></var><var><name>BPBHCCAI</name><value>100</value></var><var><name>BPBHCCCR</name><value>0</value></var><var><name>BPBHCUTL</name><value>44.2</value></var><var><name>BPBHAUTL</name><value>0.0</value></var><var><name>BPBHUUTL</name><value>12.7</value></var><var><name>BPBHLUTL</name><value>0.0</value></var><var><name>BPBHFUTL</name><value>0.0</value></var></caption><row refno="1"><col>*DP</col> <col/> <col/> <col/> <col>52.0</col> <col/> <col/> <col>1.8</col> <col>33.8</col> <col>35.5</col> <col>CS</col> <col>49</col> <col>3</col> <col>988</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<row refno="2"><col>THB</col> <col>0</col> <col>0</col> <col>NO</col> <col>2.0</col> <col>0.0</col> <col>0.0</col> <col>0.0</col> <col>0.0</col> <col>0.0</col> <col>CP</col> <col>2</col> <col>0</col> <col>20</col> <col>10.1</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col>30720</col> <col/> <col>NO</col> <col/></row>
<row refno="3"><col>THC</col> <col>0</col> <col>119</col> <col>NO</col> <col>2.0</col> <col>52.3</col> <col>52.4</col> <col>0.0</col> <col>8.1</col> <col>8.1</col> <col>CP</col> <col>2</col> <col>0</col> <col>12</col> <col>6.0</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col>AZZ1</col> <col>SYPLX2S</col> <col>12</col> <col/> <col/> <col/> <col/> <col/> <col/> <col>75776</col> <col/> <col>NO</col> <col/></row>
<row refno="4"><col>THF</col> <col>0</col> <col>1</col> <col>NO</col> <col>1.0</col> <col>0.8</col> <col>0.8</col> <col>0.0</col> <col>0.1</col> <col>0.1</col> <col>CP</col> <col>1</col> <col>0</col> <col>6</col> <col>6.0</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col>16384</col> <col/> <col>NO</col> <col/></row>
<row refno="5"><col>TH1</col> <col>0</col> <col>100</col> <col>NO</col> <col>8.0</col> <col>10.8</col> <col>11.0</col> <col>0.2</col> <col>6.6</col> <col>6.8</col> <col>CP</col> <col>8</col> <col>0</col> <col>274</col> <col>34.6</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col>AAQ1</col> <col>SPXMY2X</col> <col>330</col> <col>145</col> <col>620</col> <col/> <col/> <col/> <col/> <col>294912</col> <col/> <col>NO</col> <col/></row>
<row refno="6"><col>TH11</col> <col>0</col> <col>9</col> <col>NO</col> <col>2.0</col> <col>4.0</col> <col>4.1</col> <col>0.0</col> <col>0.6</col> <col>0.6</col> <col>CP</col> <col>2</col> <col>0</col> <col>4</col> <col>4.0</col> <col>0</col> <col>1</col> <col>1</col> <col>TBI1</col> <col>SYPLX2I</col> <col>4</col> <col/> <col/> <col/> <col/> <col/> <col/> <col>16384</col> <col/> <col>NO</col> <col/></row>
<row refno="7"><col>TH2</col> <col>0</col> <col>106</col> <col>NO</col> <col>8.0</col> <col>11.4</col> <col>11.7</col> <col>0.2</col> <col>7.0</col> <col>7.2</col> <col>CP</col> <col>8</col> <col>0</col> <col>386</col> <col>48.8</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col>AAQ3</col> <col>SPXMY2X</col> <col>330</col> <col>145</col> <col>620</col> <col/> <col/> <col/> <col/> <col>294912</col> <col/> <col>NO</col> <col/></row>
<row refno="8"><col>TH3</col> <col>0</col> <col>42</col> <col>NO</col> <col>4.0</col> <col>9.2</col> <col>9.3</col> <col>0.0</col> <col>2.8</col> <col>2.9</col> <col>CP</col> <col>4</col> <col>0</col> <col>165</col> <col>41.7</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col>AAQ5</col> <col>SPXMY2X</col> <col>165</col> <col>60</col> <col>165</col> <col/> <col/> <col/> <col/> <col>131072</col> <col/> <col>NO</col> <col/></row>
<row refno="9"><col>TH4</col> <col>0</col> <col>0</col> <col>NO</col> <col>3.0</col> <col>0.0</col> <col>0.0</col> <col>0.0</col> <col>0.0</col> <col>0.0</col> <col>CP</col> <col>0</col> <col>3</col> <col>0</col> <col>100</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col>256</col> <col/> <col/> <col/></row>
<row refno="10"><col>TH6</col> <col>0</col> <col>4</col> <col>NO</col> <col>2.0</col> <col>1.7</col> <col>1.7</col> <col>0.0</col> <col>0.3</col> <col>0.3</col> <col>CP</col> <col>2</col> <col>0</col> <col>30</col> <col>30.3</col> <col>0</col> <col>1</col> <col>1</col> <col>GAQL</col> <col>SPXMY2X</col> <col>30</col> <col/> <col/> <col/> <col/> <col/> <col/> <col>4096</col> <col/> <col>NO</col> <col/></row>
<row refno="11"><col>TH7</col> <col>0</col> <col>38</col> <col>NO</col> <col>8.0</col> <col>4.2</col> <col>4.2</col> <col>0.0</col> <col>2.6</col> <col>2.6</col> <col>CP</col> <col>8</col> <col>0</col> <col>56</col> <col>7.0</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col>GAQ1</col> <col>SPXMY2X</col> <col>37</col> <col>15</col> <col>70</col> <col/> <col/> <col/> <col/> <col>294912</col> <col/> <col>NO</col> <col/></row>
<row refno="12"><col>TH8</col> <col>0</col> <col>18</col> <col>NO</col> <col>8.0</col> <col>2.0</col> <col>2.0</col> <col>0.0</col> <col>1.2</col> <col>1.3</col> <col>CP</col> <col>8</col> <col>0</col> <col>18</col> <col>2.2</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col>GAQ3</col> <col>SPXMY2X</col> <col>37</col> <col>15</col> <col>70</col> <col/> <col/> <col/> <col/> <col>294912</col> <col/> <col>NO</col> <col/></row>
<row refno="13"><col>TH9</col> <col>0</col> <col>63</col> <col>NO</col> <col>4.0</col> <col>13.7</col> <col>13.9</col> <col>0.0</col> <col>4.2</col> <col>4.3</col> <col>CP</col> <col>4</col> <col>0</col> <col>17</col> <col>4.3</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col>GAQ5</col> <col>SPXMY2X</col> <col>17</col> <col>6</col> <col>17</col> <col/> <col/> <col/> <col/> <col>196608</col> <col/> <col>NO</col> <col/></row>
<row refno="14"><col>PHYSICAL</col> <col/> <col/> <col/> <col/> <col/> <col/> <col>1.2</col> <col/> <col>1.5</col> <col>CY</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col>0</col> <col/> <col/> <col/></row>
<row refno="15"><col></col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<row refno="16"><col>*YCFPOOL</col> <col/> <col/> <col/> <col>4.0</col> <col/> <col/> <col>0.0</col> <col>99.9</col> <col>99.9</col> <col>IS</col> <col>0</col> <col>4</col> <col>0</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<row refno="17"><col>THA</col> <col/> <col/> <col>NO</col> <col>2.0</col> <col>99.9</col> <col>99.9</col> <col>0.0</col> <col>50.0</col> <col>50.0</col> <col>IP</col> <col>0</col> <col>2</col> <col>0</col> <col>0.0</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<row refno="18"><col>TH5</col> <col/> <col/> <col>NO</col> <col>2.0</col> <col>99.9</col> <col>99.9</col> <col>0.0</col> <col>50.0</col> <col>50.0</col> <col>IP</col> <col>0</col> <col>2</col> <col>0</col> <col>0.0</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<row refno="19"><col>PHYSICAL</col> <col/> <col/> <col/> <col/> <col/> <col/> <col>0.0</col> <col/> <col>0.0</col> <col>IY</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<row refno="20"><col></col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<row refno="21"><col>*YCF</col> <col/> <col/> <col/> <col>4.0</col> <col/> <col/> <col>0.0</col> <col>99.9</col> <col>99.9</col> <col>FS</col> <col>0</col> <col>4</col> <col>0</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<row refno="22"><col>THA</col> <col/> <col/> <col>NO</col> <col>2.0</col> <col>99.9</col> <col>99.9</col> <col>0.0</col> <col>50.0</col> <col>50.0</col> <col>FP</col> <col>0</col> <col>2</col> <col>0</col> <col>100</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<row refno="23"><col>TH5</col> <col/> <col/> <col>NO</col> <col>2.0</col> <col>99.9</col> <col>99.9</col> <col>0.0</col> <col>50.0</col> <col>50.0</col> <col>FP</col> <col>0</col> <col>2</col> <col>0</col> <col>100</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<row refno="24"><col>PHYSICAL</col> <col/> <col/> <col/> <col/> <col/> <col/> <col>0.0</col> <col/> <col>0.0</col> <col>FY</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<row refno="25"><col></col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<row refno="26"><col>*KPP</col> <col/> <col/> <col/> <col>40.0</col> <col/> <col/> <col>0.4</col> <col>12.6</col> <col>13.0</col> <col>US</col> <col>40</col> <col>0</col> <col>988</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<row refno="27"><col>THB</col> <col/> <col/> <col>NO</col> <col>2.0</col> <col>0.0</col> <col>0.0</col> <col>0.0</col> <col>0.0</col> <col>0.0</col> <col>UP</col> <col>2</col> <col>0</col> <col>21</col> <col>13.8</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col>NO</col> <col/></row>
<row refno="28"><col>THC</col> <col/> <col/> <col>NO</col> <col>2.0</col> <col>1.4</col> <col>1.5</col> <col>0.0</col> <col>0.2</col> <col>0.2</col> <col>UP</col> <col>2</col> <col>0</col> <col>12</col> <col>7.8</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col>NO</col> <col/></row>
<row refno="29"><col>TH1</col> <col/> <col/> <col>NO</col> <col>6.0</col> <col>9.9</col> <col>10.0</col> <col>0.0</col> <col>4.6</col> <col>4.6</col> <col>UP</col> <col>6</col> <col>0</col> <col>342</col> <col>75.0</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col>NO</col> <col/></row>
<row refno="30"><col>TH11</col> <col/> <col/> <col>NO</col> <col>2.0</col> <col>0.1</col> <col>0.2</col> <col>0.0</col> <col>0.0</col> <col>0.0</col> <col>UP</col> <col>2</col> <col>0</col> <col>4</col> <col>5.2</col> <col>0</col> <col>1</col> <col>1</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col>NO</col> <col/></row>
<row refno="31"><col>TH2</col> <col/> <col/> <col>NO</col> <col>6.0</col> <col>11.6</col> <col>11.7</col> <col>0.0</col> <col>5.4</col> <col>5.4</col> <col>UP</col> <col>6</col> <col>0</col> <col>342</col> <col>75.0</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col>NO</col> <col/></row>
<row refno="32"><col>TH3</col> <col/> <col/> <col>NO</col> <col>5.0</col> <col>4.4</col> <col>4.4</col> <col>0.0</col> <col>1.7</col> <col>1.7</col> <col>UP</col> <col>5</col> <col>0</col> <col>171</col> <col>45.0</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col>NO</col> <col/></row>
<row refno="33"><col>TH7</col> <col/> <col/> <col>NO</col> <col>6.0</col> <col>0.1</col> <col>0.1</col> <col>0.0</col> <col>0.0</col> <col>0.0</col> <col>UP</col> <col>6</col> <col>0</col> <col>32</col> <col>7.0</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col>NO</col> <col/></row>
<row refno="34"><col>TH8</col> <col/> <col/> <col>NO</col> <col>6.0</col> <col>0.9</col> <col>0.9</col> <col>0.0</col> <col>0.4</col> <col>0.4</col> <col>UP</col> <col>6</col> <col>0</col> <col>32</col> <col>7.0</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col>NO</col> <col/></row>
<row refno="35"><col>TH9</col> <col/> <col/> <col>NO</col> <col>5.0</col> <col>0.7</col> <col>0.7</col> <col>0.0</col> <col>0.3</col> <col>0.3</col> <col>UP</col> <col>5</col> <col>0</col> <col>32</col> <col>8.4</col> <col>N/A</col> <col>N/A</col> <col>N/A</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col>NO</col> <col/></row>
<row refno="36"><col>PHYSICAL</col> <col/> <col/> <col/> <col/> <col/> <col/> <col>0.3</col> <col/> <col>0.3</col> <col>UY</col> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/> <col/></row>
<column-headers> <col type="T">BPBPPNAM</col> <col type="N">BPBPDMSU</col> <col type="N">BPBPAMSU</col> <col type="T">BPBPCAPD</col> <col type="N">BPBPLPNO</col> <col type="N">BPBPLEFU</col> <col type="N">BPBPLTOU</col> <col type="N">BPBPPLMU</col> <col type="N">BPBPPEFU</col> <col type="N">BPBPPTOU</col> <col type="T">BPBPIND</col> <col type="N">BPBPLPND</col> <col type="N">BPBPDEDP</col> <col type="N">BPBPWGHT</col> <col type="N">BPBPLPSH</col> <col type="T">BPBPVCMH</col> <col type="T">BPBPVCMM</col> <col type="T">BPBPVCML</col> <col type="T">BPBPOSNM</col> <col type="T">BPBPLPCN</col> <col type="N">BPBPLCIW</col> <col type="N">BPBPLCMW</col> <col type="N">BPBPLCXW</col> <col type="N">BPBPCGNM</col> <col type="N">BPBPCGLT</col> <col type="N">BPBPCGEM</col> <col type="N">BPBPCGEX</col> <col type="N">BPBPCSMB</col> <col type="N">BPBPUPID</col> <col type="T">BPBPCAPI</col> <col type="N">BPBPHWCC</col> </column-headers>
</report>
</ddsml>






/* Code */
Sub FetchLiveData()

'Declaration section
Dim CPCxmlDom As MSXML2.DOMDocument

Dim strErrText As String
Dim xmlPE As MSXML2.IXMLDOMParseError

Dim xresult As MSXML2.IXMLDOMNode
Dim xentry As MSXML2.IXMLDOMNode
Dim xChild As MSXML2.IXMLDOMNode

Dim row As Integer, col As Integer

'Initialization
col = 1
row = 1


Set CPCxmlDom = New MSXML2.DOMDocument
CPCxmlDom.async = False
CPCxmlDom.validateOnParse = False

 If Not CPCxmlDom.LoadXML("C:TestCPC.xml") Then
 ' The document failed to load.

   ' Obtain the ParseError object and format
   Set xmlPE = CPCxmlDom.parseError
   With xmlPE
      strErrText = "Your XML Document failed to load" & _
        "due the following error." & vbCrLf & _
        "Error #: " & .ErrorCode & ": " & xmlPE.reason & _
        "Line #: " & .Line & vbCrLf & _
        "Line Position: " & .linepos & vbCrLf & _
        "Position In File: " & .filepos & vbCrLf & _
        "Source Text: " & .srcText & vbCrLf & _
        "Document URL: " & .URL
    End With
    MsgBox strErrText, vbExclamation
        Set xmlPE = Nothing
 Else

    Set xresult = CPCxmlDom.DocumentElement
    Set xentry = xresult.FirstChild

    For Each xentry In xresult.ChildNodes

            For Each xChild In xentry.ChildNodes

                MsgBox xChild.BaseName & " " & xChild.Text
            row = row + 1
            'col = col + 1

            Next xChild
    'row = row + 1
    col = col + 1
    Next xentry

 End If

End Sub

在Excel中,您可以从Developer->Source导入xsd,然后从Developer->import导入xml,但它不会将col元素放在不同的列中,因为它们都具有相同的名称。如果您有Excel 2013,还可以查看FILTERXML公式。 XSLT也是您的选择吗

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" version="1.0" encoding="UTF-8"/>
    <xsl:template match="/">
        <xsl:text>refno col1    col5</xsl:text>
        <xsl:text>&#10;</xsl:text>
        <xsl:for-each select="ddsml/report/row">
                <xsl:value-of select="@refno"/>
                <xsl:text>  </xsl:text>
                <xsl:value-of select="col[1]"/>
                <xsl:text>  </xsl:text>
                <xsl:value-of select="col[5]"/>
                <xsl:text>&#10;</xsl:text>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

解决了问题,解决方案按要求运行

问题1加载错误程序,通过CPCxmlDom.Load修改了CPCxmlDom.LoadXML 问题2为xNode.ChildNodes中的每个xChild运行循环

Select Case xChild.BaseName

    Case "row"
     ActiveWorkbook.Sheets("Data").Range("B" & xlrow).Value = xChild.ChildNodes(0).Text
end case

感谢您的帮助

发布您的代码并询问有关的具体问题。。。另外,您使用的是哪种VB?正确地标记你的问题以吸引更多的人Hello NirMH,谢谢你的回复,更新了标记和代码并进行了更多的解释,你能帮助我吗。Hello Kokkie,谢谢你的回复,我正在通过VB代码而不是xml导入,如果代码我已经管理到目前为止,你能帮助我吗
Select Case xChild.BaseName

    Case "row"
     ActiveWorkbook.Sheets("Data").Range("B" & xlrow).Value = xChild.ChildNodes(0).Text
end case