gpt4 book ai didi

xml - VBA 使用模式文件提取数据

转载 作者:数据小太阳 更新时间:2023-10-29 01:48:28 24 4
gpt4 key购买 nike

下面有这段代码

Option Explicit

Sub MadMule2()
Dim IE As InternetExplorer
Dim el
Dim els
Dim colDocLinks As New Collection
Dim Ticker As String
Dim lnk
Dim intCounter as Integer

Set IE = New InternetExplorer

IE.Visible = False

Ticker = Worksheets("Sheet1").Range("A1").Value

LoadPage IE, "https://www.sec.gov/cgi-bin/browse-edgar?" & _
"action=getcompany&CIK=" & Ticker & "&type=10-Q" & _
"&dateb=&owner=exclude&count=20"

Set els = IE.document.getElementsByTagName("a")
For Each el In els
If Trim(el.innerText) = "Documents" Then
colDocLinks.Add el.href
End If
Next el

intCounter = 1

For Each lnk In colDocLinks
LoadPage IE, CStr(lnk)
For Each el In IE.document.getElementsByTagName("a")
If el.href Like "*[0-9].xml" Then
ActiveWorkbook.XmlMaps.Add(el, "xbrl").Name = "xbrl Map"
End If
Next el
Next lnk
End Sub

Sub LoadPage(IE As InternetExplorer, URL As String)
IE.navigate URL
Do While IE.Busy Or IE.readyState <> READYSTATE_COMPLETE
DoEvents
Loop
End Sub

这条评论user2140261


另外,当您的网站已经为您制作了架构时,您为什么还要使用 XML 文件来获取架构?当已经制作了一个时,让 excel 猜测制作一个是没有意义的。 AS excel 可能会做错,您可能永远不会发现它的错误。


通过简单地更改此语句,让我尝试使用数据机构的架构在 Excel 中创建 XML 映射:

If el.href Like "*.xsd" Then

和这个声明

ActiveWorkbook.XmlMaps.Add(el, "Schema").Name = "xbrl Map " & intCounter 

然而,当我尝试这样做时(通过转到 XML 任务 Pane ,推送源代码,然后推送 XML 映射),我得到了这个:

enter image description here

这怎么可能?我打开Schema file并且看到根节点是一个,它是 Schema

enter image description here

虽然这是合理的:...让 excel 猜测制作一个(当您只导入一个 XML 文件时 Excel 为您制作一个架构)已经制作了一个是没有意义的。

当我导入 XML file 时我制作了一个根节点。这是根节点 xbrl,它让我很容易理解。现在我得到了第一张图片中看到的碎片加上惊人的长运行时间。

  • 你认为我应该/必须引用不同的根节点吗?想导入不同的数据?

  • 我如何使用数据代理的现成模式来保护我反对错误?

  • 如何将所有这些节点放在一个根节点下(就像 excel 那样当我在 XML 映射中导入 XML 文件时)而不是有很多根节点并同时使用 Schema?

我希望这个问题的编辑不会再次变成我的惨败,因为这个问题线程的前 3 次编辑的解决方案就在我眼前。

最佳答案

该站点上引用的 XML-Schema 简直就是一头野兽(考虑到 XML-Schema 很容易出现野兽般的构造)。这个模式导入了几个额外的模式(进一步向下,xs:import ...),这可能解释了可用的额外模式。

另一方面:虽然 Excel 自动生成的 XML 模式有时确实不完整或不完全准确(类型),但我还是会使用这个模式——如果有必要进行一些更正(参见 Exporting XML from Excel and Keeping Date Format)。

除此之外,我无法弄清楚您要完成什么,尽管使用 MSXML 下载文件似乎是一个非常合理的建议。

抱歉肤浅的回答。我希望它仍然有所帮助或提供一些线索。安德烈亚斯

关于xml - VBA 使用模式文件提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21973267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com