创建自定义XML映射

时间:2015-11-05 17:18:28

标签: xml excel vba excel-vba

我正在尝试使用Excel VBA创建自定义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

返回错误:

Error

在线:

   Set MyMap = ThisWorkbook.XmlMaps.Add(StrMyXml)

我正在尝试理解如何使用VBA构建自定义XML映射的逻辑,以便我可以在另一个(更复杂的)XML文件上使用它。我关注的代码是here

那么,如何修复此错误?

3 个答案:

答案 0 :(得分:1)

删除"</ BookInfo >"

中的空格

答案 1 :(得分:1)

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

  

Dim StrMyXml As String

     

Dim MyMap As XmlMap

答案 2 :(得分:0)

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

我删除了&lt; / BookInfo&gt;中的空格(第12行) 但是在&lt; BookInfo&gt; (第4行)

仅在&lt; / BookInfo&gt;中删除是不够的。