创build自定义的XML地图

我正在尝试使用Excel VBA创build一个自定义的XML地图。 我的XML文件是BookData.xml

 <?xml version='1.0'?> <BookInfo> <Book> <ISBN>989-0-487-04641-2</ISBN> <Title>My World</Title> <Author>Nancy Davolio</Author> <Quantity>121</Quantity> </Book> <Book> <ISBN>981-0-776-05541-0</ISBN> <Title>Get Connected</Title> <Author>Janet Leverling</Author> <Quantity>435</Quantity> </Book> <Book> <ISBN>999-1-543-02345-2</ISBN> <Title>Honesty</Title> <Author>Robert Fuller</Author> <Quantity>315</Quantity> </Book> </BookInfo> 

我在Excel 2013中的VBA代码是:

 Sub Create_XSD() Dim StrMyXml As String, MyMap As XmlMap Dim StrMySchema As String StrMyXml = "< BookInfo >" StrMyXml = StrMyXml & "<Book>" StrMyXml = StrMyXml & "<ISBN>Text</ISBN>" StrMyXml = StrMyXml & "<Title>Text</Title>" StrMyXml = StrMyXml & "<Author>Text</Author>" StrMyXml = StrMyXml & "<Quantity>999</Quantity>" StrMyXml = StrMyXml & "</Book>" StrMyXml = StrMyXml & "<Book></Book>" StrMyXml = StrMyXml & "</ BookInfo >" ' Turn off async loading. Application.DisplayAlerts = False ' Add the string to the XmlMaps collection. Set MyMap = ThisWorkbook.XmlMaps.Add(StrMyXml) Application.DisplayAlerts = True ' Create an empty file and output the schema. StrMySchema = ThisWorkbook.XmlMaps(1).Schemas(1).XML Open "C:\Documents\MySchema.xsd" For Output As #1 Print #1, StrMySchema Close #1 End Sub 

这是返回错误:

错误

在线:

  Set MyMap = ThisWorkbook.XmlMaps.Add(StrMyXml) 

我想了解如何使用VBA构build自定义XML映射的逻辑,以便我可以在另一个(更复杂的)XML文件上使用它。 我正在遵循的代码是在这里 。

那么,如何解决这个错误呢?

删除"</ BookInfo >"的空格

您必须删除第2行(在Dim StrMyXml As String之后 )的逗号,然后将该行的其余部分放在它自己的行中,并使用前面的Dim命令。
它应该是这样的:

Dim StrMyXml As String

Dim MyMap As XmlMap

我遇到了同样的错误,BruceWayne的反应是正确的!

我已经删除</ BookInfo>(第12行)中的空格,但也在<BookInfo>(第4行)

仅在</ BookInfo>中删除是不够的。