【发布时间】:2017-04-06 07:06:54
【问题描述】:
当 XML 解析特殊字符时 - 我的具体问题是 & 符号 - Excel VBA 抛出错误
运行时错误 91:对象变量或未设置块变量
用于 XML 解析的 PHP 代码:
$xml = '<?xml version="1.0" encoding="UTF-8" ?>
<root> <EngineerFName>'.$engineer_fname.'</EngineerFName>
<CustomerName>'.$customer_name.'</CustomerName>
<EngineerLName>'.$engineer_lname.'</EngineerLName>
<TopName>'.$dt_top_name.'</TopName>
</root>';
Excel Vba 代码:
Dim XDoc1 As Object
Dim XHTML1 As IHTMLElement
Dim XURL1 As String
Dim CustomerName1 As String
Set XDoc1 = CreateObject("MSXML2.DOMDocument")
XDoc1.async = False: XDoc1.validateOnParse = False
XDoc1.Load ("http://www.beamon.com/windows_application/macro2.php" + "?Id=" + Sheets(1).Range("D2"))
Set lists = XDoc1.DocumentElement
Set getFirstChild = lists.FirstChild
Set getCustomerName1 = lists.ChildNodes(1)
Set getEnglname = lists.ChildNodes(2)
Set getTopCustomer = lists.ChildNodes(3)
Sheets(1).Range("T5") = getCustomerName1.text
Sheets(1).Range("T6") = getFirstChild.text & Space(1) & getEnglname.text
Sheets(1).Range("T7") = getTopCustomer.text
Set XDoc1 = Nothing
谁能提出解决方案?
【问题讨论】:
-
哪一行导致您的错误?
-
在 Excel Vba 代码第 9 行“Set getFirstChild = lists.FirstChild”导致“运行时错误 91:对象变量或未设置块变量”
-
我认为 XML 文件中没有
FirstChild,因为macro2.php正在传递错误的文件或空文件,或者由于提交了错误的 ID 或类似的东西而出现了奇怪的东西。确保加载的文件 100% 正确。 -
您正在生成一个 XML 字符串,而没有对您输入的值进行任何转义。使用转义函数甚至更好地使用 XML API 在 PHP 中生成 XML。
-
我很确定您的文件不是有效的 XML。在 XML 验证器中对其进行测试,例如:xmlvalidation.com
标签: php xml excel xml-parsing vba