有没有人知道是否有办法使用单个XMLHTTPRequest对象发送多个异步请求.我可以使用单个请求执行此操作,并从我的onreadystatechange()处理程序获取响应.
我想知道是否有办法使用同一个对象发送多个并行请求,但我没有看到任何方法来匹配来自onreadystatechange()函数的请求的响应.
MSXML6应该具有最佳的安全性,性能,可靠性和W3C一致性(在Internet Explorer中使用正确版本的MSXML).
问题:
IXMLDOMDocument实例中获取MSXML的版本吗?如果是这样,怎么样?更新:
我根据Deviant的答案做了一些研究:
jQuery创建了IXMLHTTPRequest最初与MSXML 2.0一起发布的对象,如下所示:
new ActiveXObject("Microsoft.XMLHTTP");Run Code Online (Sandbox Code Playgroud)
Microsoft.XMLHTTP是一个ProgID,它仅在MSXML3中实现,用于传统支持,不推荐使用.如果我正确理解了引用IXMLHTTPRequest,那么在这些版本被"kill-bitted"之前,这将创建一个版本2.x 对象.现在我很确定这个ProgID创建了一个MSXML 3.0 IXMLHTTPRequest对象.这可能会回答我的第二个问题.
以下示例代码显示了如何创建IXMLHTTPRequest对象的两个推荐版本:
new ActiveXObject("MSXML2.XMLHTTP.3.0"); // MSXML 3.0 ProgID...
new ActiveXObject("MSXML2.XMLHTTP.6.0"); // MSXML 6.0 ProgID...
Run Code Online (Sandbox Code Playgroud)
我在MSXML3和MSXML6中测试了XSLT性能.对于一个相当大的XML文件,MSXML6使用不到1/10的时间与MSXML3进行相同的转换!
Rerences:
我在ASP中使用XSLT,它由msxml6提供服务.
加载到对象的传入XML有"回车",我认为可能是ASCII 10.我想将它们转换<br/>为输出.
我试图 在传入的XML中检测,但似乎无法找到.我试过Javascript(ASP内部的JScript),但无济于事.
有趣的是,它来自MS Excel电子表格.
想法:
<br/>?谢谢大家,stackoverflow很棒!!
我有一个带有此条目的xml文件DataConfiguration.xml
<DataSource>
<localdata>
<add context="Localization">
<parameter name="timeout" type="int" defaultvalue="60"/>
<parameter name="address" type="string" defaultvalue="192.168.9.45" />
<parameter name="port" type="int" defaultvalue="6789"/>
</add>
</localdata>
</DataSource>
Run Code Online (Sandbox Code Playgroud)
我需要在"localdata"中添加另一个条目,这样就可以了
<DataSource>
<localdata>
<add context="Localization">
<parameter name="timeout" type="int" defaultvalue="60"/>
<parameter name="address" type="string" defaultvalue="192.168.9.45" />
<parameter name="port" type="int" defaultvalue="6789"/>
</add>
<add context="General">
<parameter name="timeout" type="int" defaultvalue="60"/>
<parameter name="address" type="string" defaultvalue="192.168.9.478" />
<parameter name="port" type="int" defaultvalue="5674"/>
</add>
</localdata>
</DataSource>
Run Code Online (Sandbox Code Playgroud)
我如何在vbscript中添加它?
我的当前代码
'created xml file object
Set xmlDoc = CreateObject("Msxml2.DOMDocument")
xmlDoc.async = False
xmlDoc.preserveWhiteSpace= True
xmlDoc.load("DataConfiguration.xml")
Dim entry
entry = "<add context=""General"">" …Run Code Online (Sandbox Code Playgroud) 我通过 VBA 在 Access 2010 中通过 WSDL 检索了一个 XML 文件。XML 文件位于此变量中
Dim xmlDoc As New DOMDocument60
Run Code Online (Sandbox Code Playgroud)
我感兴趣的 XML 部分如下所示,基本上只是对每个UserBean. AUserBean基本上是系统中的用户帐户。
<UserBean xsi:type="ns1:UserBean">
<primaryKey xsi:type="xsd:string">49084</primaryKey>
<updateIndex xsi:type="xsd:int">14</updateIndex>
<deleted xsi:type="xsd:boolean">false</deleted>
<loginID xsi:type="xsd:string">61420313556</loginID>
<name xsi:type="xsd:string">Andrew Mills</name>
<teams xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[1]">
<string xsi:type="xsd:string">Maintenance</string>
</teams>
<timezone xsi:type="xsd:string">Australia/Brisbane</timezone>
<userTypePK xsi:type="xsd:string">3776</userTypePK>
<description xsi:type="xsd:string"/>
<emailAddress xsi:type="xsd:string"/>
<phoneNumber xsi:type="xsd:string"/>
<faxNumber xsi:type="xsd:string"/>
<pagerNumber xsi:type="xsd:string"/>
<mobileNumber xsi:type="xsd:string">61420313556</mobileNumber>
<securityQuestion xsi:type="xsd:string">__INVALID</securityQuestion>
<securityAnswer xsi:type="xsd:string"/>
<synchronisation xsi:type="soapenc:Array" soapenc:arrayType="ns2:SynchronisationBean[0]" xmlns:ns2="http://soap2.nads.econz.co.nz"/>
</UserBean>
Run Code Online (Sandbox Code Playgroud)
问题是并非每个字段都必须填写。
因此,某些节点没有数据
在 VBA 中使用 MSXML2 库仅返回节点,如果其中确实有文本。因此,下面的代码将根据每个 userbean 包含的内容返回可变数量的节点。例如,有些用户没有填充 mobileNumber。
Set nodes …Run Code Online (Sandbox Code Playgroud) 好的,这行代码:
XMLHTTP40 http = new XMLHTTP40();
Run Code Online (Sandbox Code Playgroud)
抛出System.Runtime.InteropServices.COMException并抱怨:
由于以下错误,检索具有CLSID {88D969C5-F192-11D4-A65F-0040963251E5}的组件的COM类工厂失败:80040154.
我用Google搜索了,我猜DLL需要注册,因为它是一个COM DLL.这很好,但是当我尝试注册它时,我收到此错误:
C:\ some\directory\path\etc\Interop.MSXML2.dll已加载,但未找到DllRegisterServer入口点.
此文件无法注册.
显然这是在另一个人的盒子上工作(他写了代码,所以是啊..:P).这个COM对象没有显示在我的可用COM引用列表中,所以我只引用位于项目的bin\Debug目录中的DLL.当我将对此DLL的引用添加到我的项目时,我可以访问VisualStudio中的所有符号.我想知道,有什么东西我可以安装注册DLL并让它出现在我可以参考的COM对象列表中吗?我安装了我认为的MSXML 4.0库,但当我查看目录时,那里没有任何东西.
有任何想法吗?
我正在尝试从这样的 XML 文件中导入数据:
<library>
<book>
<title>aaa</title>
<author>aaa-author</author>
</book>
<book>
<title>bbb</title>
<author>bbb-author</author>
</book>
<book>
<title>ccc</title>
</book>
</library>
Run Code Online (Sandbox Code Playgroud)
(注意第三本书对作者没有价值)
我想获得一个 Excel 表格,其中每本书的数据都显示在一行中。问题是我不明白我如何在书节点上循环以获取它们的子值。
我正在处理这样的代码:
Set mainWorkBook = ActiveWorkbook
Set oXMLFile = CreateObject("Microsoft.XMLDOM")
XMLFileName = "C:\example.xml"
oXMLFile.Load (XMLFileName)
Set Books = oXMLFile.SelectNodes("/book")
For i = 0 To (Books.Length - 1)
' I cannot understand this part
Next
Run Code Online (Sandbox Code Playgroud) MSXML 4 不符合PCI标准
开箱即用的Windows 10,仅是msxml 6,对吗?
以下 URL 返回包含美元汇率的 XML:
http://www.boi.org.il/currency.xml?curr=01
Run Code Online (Sandbox Code Playgroud)
我需要调用并提取(通过解析结果)Excel VBA 返回的汇率。
在浏览器中手动调用后在 VBA 中调用时 - 它工作正常。但是,经过一定时间后,它不再通过 VBA 工作,除非首先在浏览器中再次手动调用。相反,它返回此字符串作为结果:
<html><body><script>document.cookie='ddddddd=978a2f9dddddddd_978a2f9d; path=/';window.location.href=window.location.href;</script></body></html>
Run Code Online (Sandbox Code Playgroud)
我用来调用的VBA是这样的:
Function GetExchangeRate(ByVal curr As Integer, Optional ByVal exDate As Date = 0) As Single
Dim strCurrCode As String
Dim strExDate As String
Dim strDateParamURL As String
Dim intStartPos As Integer
Dim intEndPos As Integer
Dim sngRate As Single
sngRate = -1
On Error GoTo FailedCurr
strDateParamURL = ""
strCurrCode = Format(curr, "00")
If (exDate > 0) Then
strExDate = Format(exDate, "yyyymmdd")
strDateParamURL …Run Code Online (Sandbox Code Playgroud) 我们的应用程序是用VC++编写的,我们使用MSXML进行解析.现在我们要将MSXML文档对象从我们的应用程序传递给java应用程序进行处理.我怎样才能做到这一点?java(swing)是否支持MSXML或MSXML对象?我们正在使用DOM解析器.
任何帮助,赞赏,
谢谢,KK
我试图使用XPath实现不区分大小写的搜索.我已经提到了如何在xquery中执行不区分大小写的属性选择器,因此请在标记为重复之前进行检查.我使用Lcase将我的variable(L_search)转换为小写和小写函数.
我原来区分大小写的XPath表达式是:
XPath = "//*[contains(., '"& search &"')]/ancestor-or-self::*/*[local-name()='home' and @locale='en']"
Run Code Online (Sandbox Code Playgroud)
我尝试过很多组合,比如:
XPath = "//*lower-case([contains(., '"& L_search &"')])/ancestor-or-self::*/*[local-name()='home' and @locale='en']"
XPath = "//*[contains(lower-case(.), '"& L_search &"')])/ancestor-or-self::*/*[local-name()='home' and @locale='en']"
Run Code Online (Sandbox Code Playgroud)
但他们都没有产生结果.
这是我正在运行的代码:
Sub ProcessFolder(FolderPath)
On Error Resume Next
Set fldr = fso.GetFolder(FolderPath)
Set Fls = fldr.files
For Each thing in Fls
sFSpec = FSO.GetAbsolutePathName(thing)
objMSXML.async = True
objMSXML.load sFSpec
If 0 = objMSXML.parseError Then
Dim sXPath : sXPath = "//*[contains(., '"& search &"')]/ancestor-or-self::*/*[local-name()='name' and @locale='en']"
Dim querySubject : Set …Run Code Online (Sandbox Code Playgroud) 我正在尝试分析格式为 XML 的 httprequest 的输出。我使用 MSXML2.DOMDocument 将响应加载为 XML,但收到此错误:
该系统找不到指定的路径。
这是当我将 httprequest 作为ResponseText接收时的输出:
<?xml version="1.0" encoding="utf-8"?>
<resultObj>
<result>False</result>
<invoiceNumber>1</invoiceNumber>
<referenceNumber>21669145</referenceNumber>
<transactionDate>2016/05/18 20:10:07</transactionDate>
</resultObj>
Run Code Online (Sandbox Code Playgroud)
这是我将结果加载为 XML 文件的 Vbscript 代码:
data= "invoiceUID=1"
Set httpRequest = Server.CreateObject("MSXML2.XMLHTTP.6.0")
httpRequest.Open "POST", "https://some url", False
httpRequest.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
httpRequest.Send data
postResponse = httpRequest.ResponseXML.xml
Set xmlDOM = Server.CreateObject("MSXML2.DOMDocument")
xmlDOM.async = False
xmlDOM.setProperty "ServerHTTPRequest", True
xmlDOM.Load(postResponse) ///// I think this line fails
If xmlDOM.ParseError <> 0 Then
response.write xmlDOM.ParseError.Reason
Else
response.write "file loaded"
End If
Run Code Online (Sandbox Code Playgroud)