【发布时间】:2021-03-17 22:02:44
【问题描述】:
我是 XML/XSLT 的新手,我正在学习将 XML 导入 Access 数据库。我在导入以下结构时遇到问题。输入 XML 如下(虚拟数据)
<Root>
<School Name = "ABC" Address = "XYZ"/>
<Students>
<Student ID = "123" Name = "John" Bdate = "1/1/2000">
<StudentData Address = "555 street" City = "Dummy" State = "FL"/>
</Student>
<Student ID = "234" Name = "Jane" Bdate = "1/2/2000">
<StudentData Address = "665 street" City = "Dummy" State = "FL"/>
</Student>
<Student ID = "456" Name = "Joshua" Bdate = "1/3/2000">
<StudentData Address = "775 street" City = "Dummy" State = "FL"/>
</Student>
</Students>
</Root>
我想要这种格式的输出 XML,这样当我将它加载到 Access 数据库时,我可以将所有 Student 和 Studentdata 详细信息放在一个表中。
<Root>
<School Name = "ABC" Address = "XYZ"/>
<Students>
<Student>
<ID>"123"</ID>
<Name>"John"</Name>
<Bdate>"1/1/2000"</Bdate>
<Address>"555 street"</Address>
<City>"Dummy"</City>
<State>"FL"</State>
</Student>
<Student>
<ID>"123"</ID>
<Name>"John"</Name>
<Bdate>"1/1/2000"</Bdate>
<Address>"555 street"</Address>
<City>"Dummy"</City>
<State>"FL"</State>
</Student>
<Student>
<ID>"123"</ID>
<Name>"John"</Name>
<Bdate>"1/1/2000"</Bdate>
<Address>"555 street"</Address>
<City>"Dummy"</City>
<State>"FL"</State>
</Student>
</Students>
</Root>
我尝试使用下面的 xsl 转换将属性转换为元素,但它没有给我想要的结果。我在一个表中获取学生详细信息,在另一个表中获取学生数据。 我需要两者都在 access 数据库中的同一个表中
<xsl:template match="*"
<xsl:element name="{name()}">
<xsl:for-each select="@*">
<xsl:element name ="{name()}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
<xsl:apply-templates select="*|text()"/>
</xsl:element>
</xsl:template>
【问题讨论】:
-
显示为所需输出的代码不是格式良好的 XML 文档。 确切地找出结果应该是什么样子才能正确导入。然后问如何使用 XSLT 获取它。
-
你完全正确!对不起,我没有意识到。我已更新我的帖子以更正输出 XML
标签: xml xslt attributes element