导入 xml 文件并引用 xsd 文件
Posted
技术标签:
【中文标题】导入 xml 文件并引用 xsd 文件【英文标题】:Importing xml file and referencing an xsd file 【发布时间】:2011-05-25 15:11:51 【问题描述】:我正在尝试找到一种方法来导入一个 xml 文件,其中一个 xsd 是一个单独的文件(未嵌入在 xml 中)。
Application.ImportXML DataSource:=varResult, ImportOptions:=acAppendData
是我知道如何导入 xml 文件的基本方式(其中 varResult 是从 FilePicker 例程传递的变量)。据我所知,您可以使用三个基本论点,这与我想要了解的内容无关。如果我要导入我拥有的 xml 文件,它不会为其中一张表创建多条记录;而这些值只会覆盖以前的记录。
我知道如何通过节点,使用节点列表,手动获取值,循环遍历,构建临时表,并将数据从临时表迁移到 proTables,但这需要大量编码,只是为了为了使用通用导入命令,我只是不知道如何以编程方式引用 xsd 文件。
【问题讨论】:
能否将xsd文件中的内容插入到你的xml文件中并导入修改后的版本? 【参考方案1】:AFAIK 没有 ImportXML 选项来引用单独的 xsd 文件。但是由于您知道 xml 和 xsd 文件的名称和位置,也许您可以合并它们并将合并的文件提供给 ImportXML。
我自己没有尝试过,但怀疑您可以通过 2 种方式进行合并:
-
将 xsd 标记行添加到 xml 文件的根目录
更改 xml 数据根以包含
xsi:noNamespaceSchemaLocation="YourXsdFile.xsd"
这两种方法看起来都有些笨拙。问题是……你能用比打开 xml 文档然后解析和存储值少得多的代码来做到这一点吗?
【讨论】:
对....我明白你在说什么。好吧,至少我有一种完成它的方法,只需要很多代码。但它应该仍然是尝试这个的情况。谢谢汉斯!【参考方案2】:我认为 ImportXML 方法不够健壮,无法完成您想做的事情。如果您已经在使用 AppendData 选项并且它没有将数据附加到您的规范中,那么我相信您将不得不想出一种不同的方法。
在我自己的ExportXML实验中,我认为数据结构定义包含在XML文件中。我认为 Import XML 的预期是一样的,并且没有其他选择。
您已经表明您已经知道如何加载 XML 文件并对其进行迭代以导入数据。我的研究表明,如果 ImportXML 文件没有执行您需要它执行的操作,则没有简单的方法可以将 XML 文件导入现有表。您可以通过将 XML 文件加载为 ADO 记录集来简化手动导入。
看看这个相关链接:http://bytes.com/topic/access/answers/504646-append-ado-recordset-table
【讨论】:
以上是关于导入 xml 文件并引用 xsd 文件的主要内容,如果未能解决你的问题,请参考以下文章