标签: msxml

单个XMLHTTPRequest对象可以发出多个请求

有没有人知道是否有办法使用单个XMLHTTPRequest对象发送多个异步请求.我可以使用单个请求执行此操作,并从我的onreadystatechange()处理程序获取响应.

我想知道是否有办法使用同一个对象发送多个并行请求,但我没有看到任何方法来匹配来自onreadystatechange()函数的请求的响应.

c++ msxml internet-explorer-7

2
推荐指数
1
解决办法
3905
查看次数

jQuery和MSXML

MSXML6应该具有最佳的安全性,性能,可靠性和W3C一致性(在Internet Explorer中使用正确版本的MSXML).

问题:

  1. 为什么jQuery不使用MSXML6?
  2. jQuery使用MSXML3吗?(我认为答案是肯定的,请参阅下面的更新...)
  3. 我可以从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:

  1. jQuery:写得更少,做得更多,JavaScript库
  2. IXMLHTTPRequest
  3. MSXML API历史记录
  4. GUID和ProgID信息
  5. 在Internet Explorer中使用正确版本的MSXML
  6. MSXML 3.0 GUID和ProgID
  7. MSXML 6.0 GUID和ProgID
  8. 为什么删除了与版本无关的GUID和ProgID

javascript jquery internet-explorer msxml

2
推荐指数
1
解决办法
3420
查看次数

检测传入的XML"CR"字符,然后转换为<br/>

我在ASP中使用XSLT,它由msxml6提供服务.

加载到对象的传入XML有"回车",我认为可能是ASCII 10.我想将它们转换<br/>为输出.

我试图&#10;在传入的XML中检测,但似乎无法找到.我试过Javascript(ASP内部的JScript),但无济于事.

有趣的是,它来自MS Excel电子表格.

想法:

  • 它是如何在msxsm6中的XML对象中编码的
  • 如何检测,然后更换<br/>

谢谢大家,stackoverflow很棒!!

xml xslt msxml

2
推荐指数
1
解决办法
1493
查看次数

将子条目添加到vbscipt中xml文件中的特定节点

我有一个带有此条目的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)

xml vbscript msxml

2
推荐指数
1
解决办法
2万
查看次数

从 XML 文件返回所有节点,即使它们是空的

我通过 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)

xml vba msxml

2
推荐指数
1
解决办法
1万
查看次数

Interop.MSXML2抛出异常,因为它没有注册但是WONT REGISTER!

好的,这行代码:

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库,但当我查看目录时,那里没有任何东西.

有任何想法吗?

c# com msxml dllregistration

1
推荐指数
1
解决办法
7156
查看次数

如何使用 Excel VBA 导入 XML 数据?

我正在尝试从这样的 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)

xml excel vba msxml

1
推荐指数
1
解决办法
4081
查看次数

1
推荐指数
1
解决办法
2万
查看次数

VBA 中的 WinHttpRequest 仅在前面有浏览器调用时才有效

以下 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)

excel vba msxml winhttprequest

1
推荐指数
1
解决办法
4万
查看次数

Java中的MSXML解析器

我们的应用程序是用VC++编写的,我们使用MSXML进行解析.现在我们要将MSXML文档对象从我们的应用程序传递给java应用程序进行处理.我怎样才能做到这一点?java(swing)是否支持MSXML或MSXML对象?我们正在使用DOM解析器.

任何帮助,赞赏,

谢谢,KK

java xml msxml xml-parsing

0
推荐指数
1
解决办法
1049
查看次数

如何在XPath中执行不区分大小写的搜索?

我试图使用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 vbscript xpath msxml

0
推荐指数
1
解决办法
7613
查看次数

从 httprequest 输出加载 XML 文件

我正在尝试分析格式为 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)

xml vbscript msxml httprequest

0
推荐指数
1
解决办法
1036
查看次数