Excel 如何更改XML的编码

Excel 如何更改XML的编码,excel,vba,Excel,Vba,我正在做我的项目工作,我需要这个XML代码来快速工作 我确实理解excel vba编码,我自己写了这段代码,我已经尝试了很多,但我无法用“XML”的方式做同样的工作 Sub-JJ() Dim IE作为新的SHDocVw.InternetExplorer 将hdoc设置为MSHTML.HTMLDocument Dim ha、hb、hc、hd作为字符串 可见=真实 即“导航”https://www.nseindia.com/live_market/dynaContent/live_watch/get

我正在做我的项目工作,我需要这个XML代码来快速工作

我确实理解excel vba编码,我自己写了这段代码,我已经尝试了很多,但我无法用“XML”的方式做同样的工作

Sub-JJ()
Dim IE作为新的SHDocVw.InternetExplorer
将hdoc设置为MSHTML.HTMLDocument
Dim ha、hb、hc、hd作为字符串
可见=真实
即“导航”https://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/GetQuote.jsp?symbol=HAL"
在IE.readyState readyState\u完成时执行此操作
环
设置hdoc=IE.document
ha=hdoc.getElementById(“打开”).innerText
范围(“K2”)。值=公顷
即退出
端接头

我希望相同工作的XML代码能够正常工作

我想您是说希望转换为xmlhttp请求。一些内容是javascript呈现的,但是您想要的值也以json的形式存在于div中

您可以在响应中看到目标id为空,因为内容需要javascript来填充:

但是,在
div的其他地方也有相同的信息:

您可以使用json解析器从该json解析出所需的值。我用。将
.bas
添加到项目后,需要转到
VBE>Tools>References>添加对Microsoft脚本运行时的引用
。您还需要Microsoft HTML对象库的参考。当您用一个字符串检查json响应时,您将看到结构
{}
表示通过键访问的字典<代码>[]
表示通过索引访问的集合以及带有■ 是字符串文字

Option Explicit
Public Sub GetInfo()
    Const URL As String = "https://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/GetQuote.jsp?symbol=HAL"
    Dim html As HTMLDocument, json As Object
    Set html = New HTMLDocument
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", URL, False
        .Send
        html.body.innerHTML = .responsetext
    End With
    Set json = jsonconverter.ParseJson(html.getElementById("responseDiv").innerText)
    Debug.Print json("data")(1)("open")
End Sub

以下是json的简化视图:


您需要从网页中检索哪些确切数据?最好添加一个屏幕截图。请告诉我一次查看json的方法。你的回答帮助我解决了我的问题@JugalKishorThanks QHarr我在获取嵌套json中的内部文本时遇到问题,你能帮我吗,json代码是-,我想打印json>data>1>Chu收盘价。你尝试了什么?您可以使用(number)为集合建立索引,并使用(“key…”)访问字典项Shii QHarr让我们看一看json响应是“”,我正在尝试
Option Explicit
Public Sub GetInfo()
    Const URL As String = "https://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/GetQuote.jsp?symbol=HAL"
    Dim html As HTMLDocument, json As Object
    Set html = New HTMLDocument
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", URL, False
        .Send
        html.body.innerHTML = .responsetext
    End With
    Set json = jsonconverter.ParseJson(html.getElementById("responseDiv").innerText)
    Debug.Print json("data")(1)("open")
End Sub