如何将此类型的Excel XLS表转换为适当的XML?

时间:2012-08-01 03:57:46

标签: xml excel xsd schema

我正在尝试设置一个用于Excel XML Mapping的Schema文件。我想要完成的是获取电子表格中的每一行,并让它输出如下所示的XML:

Excel行:

XML_Name   |    Initiative    |    HitPoints
ad_wasp         5                  42
hob_goblin      7                  22

所需的XML输出:

<entities>
 <ad_wasp>
     <initiative>5</initiative>
     <hitpoints>42</hitpoints>
 </ad_wasp>
 <hob_gob>
     <initiative>7</initiative>
     <hitpoints>22</hitpoints>
 </hob_gob>
</entities>

换句话说 - 我想在Excel工作表中的第一行作为主要元素标记,然后在其下面,将以下行作为子元素。我希望它以这种格式作为我正在使用的程序(Fantasy Grounds 2)接受XML格式的模块化插件,并且需要这样的唯一命名元素,包含子元素。

请记住 - 我对XML完全不熟悉。也许我不能这样做。我在过去3个小时内能够获得的是......

  1. 在Excel中,单击“开发人员”选项卡。
  2. 定义XML地图源
  3. 将其指向XSD
  4. 我已经创建了一个模式文件,如下所示,使用XMLSpy - 但是,我遇到的问题是下面的模式将所有内容都放在这样的标记中:

    <xml_tag>
        <Name>aasimar</Name>
        <XP>Aasimar</XP>
        <CR>Aasimar</CR>
        <Init>Aasimar</Init>
    </xml_tag>
    

    有没有办法做我想要的?如果我尝试将“type =”xs:string“”声明放入“XML_Tag”元素中,则会出现错误('type'属性和匿名类型定义对于元素声明'xml_tag'是互斥的。)但是 - 我不知道如何使元素成为“动态变量”(可能使用错误的术语),而不是相同的静态标记。

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:element name="Entities">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="xml_tag" form="unqualified" nillable="true" minOccurs="0" maxOccurs="unbounded">
                        <xs:complexType>
                            <xs:sequence minOccurs="0">
                                <xs:element name="Name" type="xs:string" form="unqualified" nillable="true" minOccurs="0"/>
                                <xs:element name="XP" type="xs:integer" form="unqualified" nillable="true" minOccurs="0"/>
                                <xs:element name="CR" type="xs:integer" form="unqualified" nillable="true" minOccurs="0"/>
                                <xs:element name="Init" type="xs:integer" form="unqualified" nillable="true" minOccurs="0"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:schema>
    

0 个答案:

没有答案