如何复制 svg 图形的属性(从 html 到 excel)

How to copy attribute of svg graphic (from html to excel)

我创建了一个宏,可以从网站在线基地(使用他们的 PIN 码)找到人,我想将他们的一些信息复制到 excel(例如他们的姓名、状态等)。 搜索结果是 table,其中包含文本和对象 (svg),我在将对象复制到 excel 时遇到问题。 搜索结果如下所示:

<td data-label="Full name">Name</td>
<td data-label="Status" class="results-status">
    <svg role="presentation"><use xlink:href="/static/img/sprite.svg#status-caution"></use></svg>
</td>
<td data-label="Location">UK</td>
<td data-label="Details"></td>

所以我写了这个:

Set elements = doc.getElementsByTagName("td")
            Cells(i, 1).Value = elements(0).innerText
            Cells(i, 3).Value = elements(1).innerText
            Cells(i, 4).Value = elements(2).innerText
            Cells(i, 5).Value = elements(3).innerText

不幸的是,我没有从 elements(1) 中得到任何东西。我猜它不起作用,因为这是一个对象而不是文本。

我必须从第 2 行获取状态信息 (/static/img/sprite.svg#status-caution),但我不知道该怎么做.我也试过 img = elements(1).getAttribute() 但 msgbox(img) 只显示了这个:[native code]

请试试这个:

Cells(i, 3).Value = elements(1).Children(0).Children(0).getAttribute("xlink:href")

解释:

  1. 因为元素设置为doc.getElementsByTagName("td"),标签名"use"在二级以下,加上Children(0).Children(0).firstElementChild.firstElementChild得到href.

  2. elements(1).Children(0).Children(0).href什么也得不到,取而代之的是用.getAttribute("xlink:href")代替.href.

或者另一个解决方案是:

Set elements = doc.getElementsByClassName("results-status")

Cells(i, 3).Value = elements(0).firstElementChild.firstElementChild.getAttribute("xlink:href")

Attached screenshot of working code and tested