标签: msxml

System.Xml是否使用MSXML?

我正在开发一个C#应用程序,它使用一些XML文件和System.Xml中的一些类.同事坚持在我们的安装中添加MSXML6可再发行组件以及.NET框架,但我认为.NET框架无论如何都不会使用或需要MSXML.我很清楚,不支持使用.NET中的MSXML,但我认为理论上System.Xml本身可以将MSXML包装在较低级别.我没有找到任何确定的.NET有自己的实现,但我也找不到任何暗示需要MSXML的东西.

帮我解决辩论.System.Xml是否使用MSXML?

.net xml msxml

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

通过VBScript调用WCF服务

有一个配置的WCF服务:

<services>
  <service name="MyService" behaviorConfiguration="MyServiceBehavior">
    <endpoint 
      binding="basicHttpBinding"  
      contract="IMyService" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8001/MyService" />
      </baseAddresses>
    </host>
  </service>
</services>

<behaviors>
  <serviceBehaviors>
    <behavior name="MyServiceBehavior">
      <serviceMetadata httpGetEnabled="True" />
    </behavior>
  </serviceBehaviors>
</behaviors>
Run Code Online (Sandbox Code Playgroud)

这个脚本应该调用它:

Option Explicit

Dim soapClient
Dim serviceUri
Dim serviceName
Dim portName
Dim result

serviceUri = "http://localhost:8001/MyService"
serviceName = "MyService"
portName = "BasicHttpBinding_IMyService"

Set soapClient = CreateObject("MSSOAP.soapClient")
soapClient.ClientProperty("ServerHTTPRequest") = True
soapClient.mssoapinit serviceUri & "?WSDL", serviceName, portName
Run Code Online (Sandbox Code Playgroud)

运行脚本时出现此错误:

客户端:WSDLReader:分析WSDL文件失败HRESULT = 0x8 0004005 - WSDLReader:服务初始化失败HRESULT = 0x80004005 - WSDL服务:服务端口初始化服务MyService失败HRESULT = 0x80004005 - WSDLPort:分析端口BasicHttpBinding_IMyService的绑定信息失败HRESULT = 0x80004005 …

vbscript wcf msxml

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

使用Excel中的VBA到IE中的Google搜索并返回第一个结果的超链接

我一直在尝试使用IE自动化谷歌搜索Excel中的一串文本.我想在excel中的另一个单元格中返回第一个结果的网站的超链接.这可能吗?我有一个包含60,000条记录的列表,我需要谷歌搜索并在第一个结果中返回网站的超链接.你会推荐另一种解决方法吗?我提前感谢你的帮助.

excel vba msxml

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

MSXML2.XMLHTTP发送方法与早期绑定一起使用,后期绑定失败

以下代码有效.但是,如果我注释掉该行Dim objRequest As MSXML2.XMLHTTP并取消注释该行,Dim objRequest As Object则会失败并显示错误消息:

参数不正确

为什么,以及我可以做些什么(如果有的话)?

Public Function GetSessionId(strApiId, strUserName, strPassword) As String

    Dim strPostData As String

    Dim objRequest As MSXML2.XMLHTTP
    'Dim objRequest As Object '

    strPostData = "api_id=" & strApiId & "&user=" & strUserName & "&password=" & strPassword

    Set objRequest = New MSXML2.XMLHTTP
    With objRequest
        .Open "POST", "https://api.clickatell.com/http/auth", False
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .send strPostData
        GetSessionId = .responseText
    End With

End Function
Run Code Online (Sandbox Code Playgroud)

Corey,是的,我知道我必须这样做才能使我的代码在没有引用MSXML类型库的情况下工作.这不是问题所在.Dim objRequest As Object无论我是否使用,代码在使用时都会失败

Set objRequest = NEW MSXML2.XMLHTTP …

vba msxml http xmlhttprequest

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

如何使XMLDOMDocument包含XML声明?

当XMLDOMDocument自行保存时,如何让它包含XML声明,例如:

  • <?xml version="1.0" encoding="UTF-8" ?>
  • <?xml version="1.0" encoding="UTF-16" ?>
  • <?xml version="1.0" encoding="UCS-2" ?>
  • <?xml version="1.0" encoding="UCS-4" ?>
  • <?xml version="1.0" encoding="ISO-10646-UCS-2" ?>
  • <?xml version="1.0" encoding="UNICODE-1-1-UTF-8" ?>
  • <?xml version="1.0" encoding="UNICODE-2-0-UTF-16" ?>
  • <?xml version="1.0" encoding="UNICODE-2-0-UTF-8" ?>
  • <?xml version="1.0" encoding="US-ASCII" ?>
  • <?xml version="1.0" encoding="ISO-8859-1" ?>
  • <?xml version="1.0" encoding="WINDOWS-1250" ?>

XMLDOMDomcument对象正在内存中创建(即xml不是从某些外部源加载的):

{
   IXMLDOMDocument2 doc = new DOMDocument60();

   //add nodes to the doc
   ...

   doc.Save(saveTarget);
}
Run Code Online (Sandbox Code Playgroud)

没有xml声明,你只能获得body xml,例如:

<Customer>
   ...
</Customer>
Run Code Online (Sandbox Code Playgroud)

而不是完整的XML文档:

<?xml version="1.0" encoding="US-ASCII" ?>
<Customer>
   ...
</Customer>
Run Code Online (Sandbox Code Playgroud)

问题2

如何控制XMLDOMDocument在保存到流时将使用的编码 …

xml msxml dom

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

从注册表中查找MSXML版本

Windows有许多可以并排安装的MSXML版本.即第3,4,5和6号.

我必须找到系统中存在哪个msxml文件.我的查询仅限于注册表.

msxml

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

变量bstr到std :: string转换的默认编码

我有一个从MSXML DOM中提取的变量bstr,所以它是UTF-16.我试图找出此转换发生的默认编码:

VARIANT vtNodeValue;
pNode->get_nodeValue(&vtNodeValue);
string strValue = (char*)_bstr_t(vtNodeValue);
Run Code Online (Sandbox Code Playgroud)

从测试来看,我认为默认编码是Windows-1252或Ascii,但我不确定.

顺便说一句,这是我正在修复的代码块,并将变量转换为wstring,并通过调用WideCharToMultiByte进行多字节编码.

谢谢!

c++ com msxml std

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

XMLHTTP onTimeOut时如何进行VBA回调函数?

我正在尝试从webserver获取xml数据到excel,然后我写了一个sendRequest函数来调用excel

=sendRequest("http://abb.com/index.php?id=111")

当网络服务器出现问题,无法连接或无法找到时,excel没有响应,这太可怕了!为了避免它,我认为我们应该设置timeOut.这些是我的功能:

Function sendRequest(Url)
    'Call service
    Set XMLHTTP = CreateObject("Msxml2.ServerXMLHTTP.6.0")

    'Timeout values are in milli-seconds
    lResolve = 10 * 1000
    lConnect = 10 * 1000
    lSend = 10 * 1000
    lReceive = 15 * 1000 'waiting time to receive data from server
    XMLHTTP.setTimeOuts lResolve, lConnect, lSend, lReceive

    XMLHTTP.OnTimeOut = OnTimeOutMessage 'callback function

    XMLHTTP.Open "GET", Url, False

    On Error Resume Next
    XMLHTTP.Send
    On Error GoTo 0

    sendRequest = (XMLHTTP.responseText)
End Function

Private Function OnTimeOutMessage()
    'Application.Caller.Value = "Server error: …
Run Code Online (Sandbox Code Playgroud)

excel vba msxml timeout callback

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

使用VBA循环使用XML

我正在尝试使用VBA循环使用以下简单的XML,最终目标是能够轻松地按顺序提取数据.

<?xml version="1.0"?> 
      <PMRData> 
        <Staff StaffName="Person 1"> 
          <Openings>1.1</Openings> 
          <Closures>1.11</Closures> 
        </Staff> 
        <Staff StaffName="Person 2"> 
          <Openings>1.2</Openings> 
          <Closures>1.22</Closures> 
        </Staff> 
        <Staff StaffName="Person 3"> 
          <Openings>1.3</Openings> 
          <Closures>1.33</Closures> 
        </Staff> 
      </PMRData>
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的代码设法将数据导入立即窗口,但不是按照我需要的顺序.它应该是:员工姓名Person1开口1.1关闭1.11员工姓名人员2开口2.2关闭2.22等

意思是我需要使我的递归函数具体,而不是为所有节点循环.任何帮助将不胜感激!这就是我到目前为止......

Dim xDoc As DOMDocument
Set xDoc = New DOMDocument
Dim xNode As IXMLDOMNode
Dim xElem As IXMLDOMElement
Dim xElemCount As Integer
Dim xSub As IXMLDOMElement
Dim Nodes As IXMLDOMNodeList
        Set xElem = xDoc.SelectSingleNode("//PMRData")
        Range("a1").Select
        xElemCount = xElem.ChildNodes.Length
        Debug.Print "xElem has " & xElemCount & " Nodes"
        For Each xSub In xElem.ChildNodes
            If xSub.Attributes.Length > 0 …
Run Code Online (Sandbox Code Playgroud)

xml vba msxml loops nodes

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

在Excel VBA中使用MSXML2.XMLHTTP从网站中提取大量文本数据

我试图从finance.yahoo.com下载千年股票的历史股票价格数据.该网站仅在一个页面上显示60天的数据,因此我必须循环浏览我下载的时间段以及不同证券的循环.我使用以下代码访问相关页面.

Set httpObject = CreateObject("MSXML2.XMLHTTP")
httpObject.Open "GET", url, False
httpObject.send
webObject.body.innerHTML = httpObject.responseText
Run Code Online (Sandbox Code Playgroud)

这就像我访问的99%数据的魅力.但是,不时地,网站返回的对象都是空的,即使完全相同的URL会在Internet Explorer中显示正确的数据.如果我重新运行该URL的代码,则下次可能会或可能不会失败.

我想知道是否有更稳定/一致的方式使用上述方法.我之前已经实现了InternetExplorer.Application方法来下载数据,但发现它要慢得多,也很麻烦.

excel vba msxml html-content-extraction

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

标签 统计

msxml ×10

vba ×5

excel ×3

xml ×3

.net ×1

c++ ×1

callback ×1

com ×1

dom ×1

html-content-extraction ×1

http ×1

loops ×1

nodes ×1

std ×1

timeout ×1

vbscript ×1

wcf ×1

xmlhttprequest ×1