2011-05-25 54 views
0

我想找到一種方法來導入一個xml文件,這是一個xsd,它是一個單獨的文件(不嵌入到xml中)。導入xml文件並引用一個xsd文件

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

是我知道如何導入XML文件(其中varResult是一個變量傳遞形式的FilePicker例程)的基本途徑。據我所知,你可以使用三個基本論點,這與我試圖解決的問題無關。如果我要導入xml文件,我不會爲其中一個表創建多個記錄;相反,這些值只會覆蓋以前的記錄。我知道如何通過節點,通過nodelist,手動獲取值,循環遍歷數據,構建臨時表,並將數據從臨時數據遷移到proTables,但這是很多編碼,只是爲了彌補這一事實,我只是不知道如何以編程方式引用xsd文件,以便使用通用導入命令。

+1

您能否將xsd文件中的內容插入到您的xml文件中並導入修改的版本? – 2011-05-25 17:28:30

回答

1

AFAIK沒有引用一個單獨的XSD文件IMPORTXML選項。但既然你知道你的xml和xsd文件的名稱和位置,也許你可以合併它們,並將合併文件提供給ImportXML。

我沒有這個嘗試過自己,但懷疑你能做的合併在兩個方面:

  1. 添加XSD的標記線,以XML文件的根
  2. 更改XML dataroot包括xsi:noNamespaceSchemaLocation="YourXsdFile.xsd"

這兩種方法都顯得有點混雜。問題是......你能用比代碼打開xml文件少得多的代碼來完成,然後解析和存儲這些值嗎?

+0

對......我明白你在說什麼了。至少我有一個完成它的方法,只需要很多代碼。但它應該像這樣嘗試這種情況仍然如此。謝謝漢斯! – Justin 2011-05-26 10:43:22

1

我不認爲ImportXML方法足夠強大,可以做你想做的事情。如果你已經在使用AppendData選項,並且它沒有將數據附加到你的規範中,那麼我相信你將不得不找出一個不同的方式來做到這一點。

在我自己的實驗ExportXML中,我認爲數據結構定義包含在XML文件中。我認爲導入XML期望是相同的,並且沒有其他選擇。

您已經表明您已經知道如何加載XML文件並遍歷它以導入數據。我的研究表明,如果ImportXML文件沒有執行您需要的操作,那麼沒有簡單的方法將XML文件導入到現有的表中。您可以通過將XML文件加載爲ADO記錄集來簡化手動導入。

在這個相關的鏈接看看:
http://bytes.com/topic/access/answers/504646-append-ado-recordset-table