【问题标题】:Importing xml file and referencing an xsd file导入 xml 文件并引用 xsd 文件
【发布时间】:2011-05-25 15:11:51
【问题描述】:

我正在尝试找到一种方法来导入一个 xml 文件,其中一个 xsd 是一个单独的文件(未嵌入在 xml 中)。

 Application.ImportXML DataSource:=varResult, ImportOptions:=acAppendData

是我知道如何导入 xml 文件的基本方式(其中 varResult 是从 FilePicker 例程传递的变量)。据我所知,您可以使用三个基本论点,这与我想要了解的内容无关。如果我要导入我拥有的 xml 文件,它不会为其中一张表创建多条记录;而这些值只会覆盖以前的记录。

我知道如何通过节点,使用节点列表,手动获取值,循环遍历,构建临时表,并将数据从临时表迁移到 proTables,但这需要大量编码,只是为了为了使用通用导入命令,我只是不知道如何以编程方式引用 xsd 文件。

【问题讨论】:

  • 能否将xsd文件中的内容插入到你的xml文件中并导入修改后的版本?

标签: xml ms-access xsd vba


【解决方案1】:

AFAIK 没有 ImportXML 选项来引用单独的 xsd 文件。但是由于您知道 xml 和 xsd 文件的名称和位置,也许您可​​以合并它们并将合并的文件提供给 ImportXML。

我自己没有尝试过,但怀疑您可以通过 2 种方式进行合并:

  1. 将 xsd 标记行添加到 xml 文件的根目录
  2. 更改 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

【讨论】:

    猜你喜欢
    • 2014-06-17
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 2011-09-25
    相关资源
    最近更新 更多