标签: msxml

MSXML2.ServerXMLHTTP.4.0来源?

对象"MSXML2.ServerXMLHTTP.4.0"来自哪里?哪个安装包?

我正在尝试执行以下操作:

Set oXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP.4.0")
Run Code Online (Sandbox Code Playgroud)

这个尝试在我的开发机器上失败(没有返回任何对象),但它在我的同事的开发机器上是成功的.显然,他安装的东西我没有,反之亦然,但是这个对象,dll等来自何处?

我需要安装什么才能使此调用工作?

对于记录,将对象更改为其他版本不是一种选择,因为此依赖的代码针对此特定版本进行了几天的测试.我们必须再回去测试......

要扩展此问题,如何判断当前安装的MS XML版本?

vbscript msxml object

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

VBScript,MSXML和命名空间

给出以下XML:

<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <GetMsisdnResponse xmlns="http://my.domain.com/">
            <GetMsisdnResult>
                <RedirectUrl>http://my.domain.com/cw/DoIdentification.do2?sessionid=71de6551fc13e6625194</RedirectUrl>
            </GetMsisdnResult>
        </GetMsisdnResponse>
    </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

我试图在VBScript中使用XPath访问RedirectUrl元素:

set xml = CreateObject("MSXML2.DOMDocument")
xml.async = false
xml.validateOnParse = false
xml.resolveExternals = false
xml.setProperty "SelectionLanguage", "XPath"
xml.setProperty "SelectionNamespaces", "xmlns:s='http://my.domain.com/' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'"

err.clear
on error resume next
xml.loadXML (xmlhttp.responseText)
if (err.number = 0) then

    redirectUrl = xml.selectSingleNode("/soap:Envelope/soap:Body/s:GetMsisdnResponse/s:GetMsisdnResult/s:RedirectUrl").text
end if
Run Code Online (Sandbox Code Playgroud)

但它找不到RedirectUrl节点,因此当我尝试获取.text属性时没有任何内容.我究竟做错了什么

xml vbscript xpath msxml namespaces

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

使用MSXML拒绝访问

我有一个经典ASP网站的VB6后端.然后,VB使用MSXML2.XMLHTTP在同一服务器上调用Web服务.这适用于我们所有的服务器但只有一个.如果我将Web服务站点设置为接受匿名登录,则它将起作用,但是如果我仅强制集成安全性,MSXML将返回"拒绝访问"错误.

我在这里使用示例中的代码.

Set objDom = CreateObject("MSXML2.DOMDocument")
Set objXmlHttp = CreateObject("MSXML2.XMLHTTP")

' Load XML
objDom.async = False
objDom.loadXML XmlBody

' Open the webservice
objXmlHttp.Open "POST", AsmxUrl, False

' Create headings
objXmlHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
objXmlHttp.setRequestHeader "SOAPAction", SoapActionUrl

' Send XML command
objXmlHttp.send objDom.xml
Run Code Online (Sandbox Code Playgroud)

编辑:根据AnthonyWJones的建议,我下了清单,它仍然无法正常工作.使用Fiddler,它显示一个具有401响应的请求.身份验证选项卡显示:

No Proxy-Authenticate Header is present.
WWW-Authenticate Header is present: Negotiate
WWW-Authenticate Header is present: NTLM
Run Code Online (Sandbox Code Playgroud)

我确实注意到了一种奇怪的行为.当我使用登录到远程桌面的用户的凭据来呼叫网站时,它将起作用.我得到谈判,挑战,然后200,它会工作.当用户通过远程桌面登录而不是其他时间登录时,为什么会这样做有什么想法?

vb6 msxml web-services

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

对于IE,有没有一个油脂?或者,如何让网站使用MSXML6而不是MSXML5?

我不知道greasemonkey,但我认为这是一种编写或扩展Firefox的方法.

对于IE,有没有一个油脂?

例如:有一个网站托管一个页面,要求我安装MSXML5.0.

替代文字http://i50.tinypic.com/opmgsw.jpg

我不想要MSXML5.0.
我在想,如果我有一个非常棒的功能(如果它是我认为的那样),我就能编写一个将5.0改为6.0的脚本,一切都会很酷.

我知道有一种方法可以在Fiddler中做这种事情,如果我让它运行,并设置为代理.

internet-explorer msxml greasemonkey

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

结果树片段到节点集:所有xsl引擎的通用方法

回答另一个线程(参见stackoverflow:生成css颜色方案)我遇到了下面的问题,其中不同的xsl引擎似乎需要不同的方法将结果树片段转换为节点集.

简化问题(但请参阅上面的链接以了解此背后的完整故事),我希望有一个包含颜色值列表的内联树.由于必须在Xpath表达式中使用,我必须专门为MSXML xx xsl引擎创建一个节点集(内置的XML Spy在解释构造为rtf的变量的Xpath表达式时遇到的麻烦较少).
另一个线程stackoverflow:automating-exsltnode-set帮助我.生成的节点集用于从输入XML创建新变量rtf.
同样,MSXML在Xpath表达式中使用新变量时会抱怨,所以我使用了node-set函数从中创建了一个节点集.
到目前为止一直很好,MSXML xx不再出错.
但是当我在XML Spy内置或Saxon 9he中运行相同时,我得到另一个错误:似乎节点集函数未知:

Cannot find a matching 1-argument function named {urn:schemas-microsoft-com:xslt}node-set() in variable colorList
Run Code Online (Sandbox Code Playgroud)

请注意,在这个特定的例子中不需要这种两步法,但正如我所说的,我简化了一些事情; 我只想知道如何编写一个适用于所有xsl引擎的XSLT 1.0转换.

我使用的XSLT:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:std="http://whatever"
    xmlns:exslt="urn:schemas-microsoft-com:xslt"
    exclude-result-prefixes="std exslt">

    <xsl:output method="xml" indent="yes"/>

    <std:colors>
        <color>#0000FF</color>
        <color>#FF0000</color>
    </std:colors>

    <xsl:variable name="colors" select="document('')/*/std:colors"/>

    <xsl:variable name="std:colorList">
        <xsl:for-each select="//testid">
            <xsl:variable name="pos" select="position() mod 2"/>
            <xsl:element name="color">
                <xsl:attribute name="testid"><xsl:value-of select="."/></xsl:attribute>
                <xsl:value-of select="$colors/color[$pos + 1]"/>
            </xsl:element>
        </xsl:for-each>
    </xsl:variable>

    <xsl:variable name="colorList" select="exslt:node-set($std:colorList)"/>

    <xsl:template match="/">
        <output>
            <xsl:copy-of …
Run Code Online (Sandbox Code Playgroud)

xslt msxml saxon node-set

5
推荐指数
2
解决办法
7925
查看次数

如何设置XMLDOMDocument的doctype?

我怎样才能设置doctype一个的DOMDocument60对象?

例如,我尝试:

IXMLDOMDocument60 doc = new DOMDocument60();
doc.doctype.name = "html";
Run Code Online (Sandbox Code Playgroud)

除了IXMLDOMDocumentType.name只读的:

IXMLDOMDocumentType = interface(IXMLDOMNode)
{
   ['{2933BF8B-7B36-11D2-B20E-00C04F983E60}']
   string Get_name();
   ...
   property String name read Get_name;
}
Run Code Online (Sandbox Code Playgroud)

并且IXMLDOMDocument60.doctype只读的:

IXMLDOMDocument = interface(IXMLDOMNode)
{
   ['{2933BF81-7B36-11D2-B20E-00C04F983E60}']
   IXMLDOMDocumentType Get_doctype();
   ...
   property IXMLDOMDocumentType doctype read Get_doctype;
}
Run Code Online (Sandbox Code Playgroud)

那么如何设置doctypeXML文档呢?


奖金问题:我如何才能创建一个DOMDocument60与指定的对象doctype


注意:您没有看到XSLT,因为没有.我正在MSXML中构建一个HTML DOM树.

html5 doctype msxml

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

如何声明返回节点集的用户定义函数?

我想要这样的东西:

<msxsl:script language="C#">
   ??? getNodes() { ... return ... }
</msxsl:script>

<xsl:for-each select="user:getNodes()">
    ...
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)

我应该使用什么返回类型getNodes()以及我应该在它的主体中放入什么?

.net xslt msxml

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

如何将命名空间添加到 msxml DOMDocument?

如何将架构添加到IXMLDOMDocument?

例如,我想生成 XML:

<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
   <Relationship Id="rId1" Type="Frob" Target="Grob"/>
</Relationships>
Run Code Online (Sandbox Code Playgroud)

我可以构造 DOMDocument60 对象(伪代码)

DOMDocument60 doc = new DOMDocument60();

IXMLDOMElement relationships = doc.appendChild(doc.createElement("Relationships"));

IXMLDOMElement relationship = relationships.appendChild(doc.createElement("Relationship"));
   relationship.setAttribute("Id", "rId1");
   relationship.setAttribute("Type", "Frob");
   relationship.setAttribute("Target", "Grob");
Run Code Online (Sandbox Code Playgroud)

现在是如何添加命名空间的问题。

如何添加命名空间?

如果我执行明显的解决方案,请在关系节点上设置一个名为xmlns

<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
Run Code Online (Sandbox Code Playgroud)

通过类似的东西:

relationships.setAttribute("xmlns", 
      "http://schemas.openxmlformats.org/package/2006/relationships");
Run Code Online (Sandbox Code Playgroud)

文档保存时,导致生成的xml出错:

<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
   <Relationship Id="rId1" Type="Frob" Target="Grob" xmlns=""/>
</Relationships>
Run Code Online (Sandbox Code Playgroud)

xmlns在每个其他元素上放置空属性。在这个小测试文档中,它只会错误地应用xmlns到一个元素。在现实世界中,有数十个或数百万个具有空xmlns属性的其他元素。

命名空间URI属性

我尝试设置元素的namespaceURI属性Relationships

relationshps.namespaceURI := "http://schemas.openxmlformats.org/package/2006/relationships"; 
Run Code Online (Sandbox Code Playgroud)

但该属性是只读的

模式属性

文档确实有一个schemas属性,它获取或设置一个 …

winapi msxml ixmldomdocument

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

VBA CreateObject("MSXML2.DOMDocument60")抛出错误429

我在使用声明新对象时遇到问题 CreateObject()

Sub A()
    Dim x

    'This works
    Set x = CreateObject("Scripting.FileSystemObject")
    Set x = Nothing

    'This throws an error 429 "Active component cannot create object."
    Set x = CreateObject("MSXML2.DOMDocument60")
    Set x = Nothing

    'The only way I can create object is to add the reference using GUID
    Dim y As MSXML2.DOMDocument60
    Set y = New MSXML2.DOMDocument60
    Set y = Nothing
    'This works like a charm

End Sub
Run Code Online (Sandbox Code Playgroud)

我不明白为什么"脚本"有效,"MSXML2"没有.

我在Windows 7 64位上使用MS Access 2010 32位.

vba msxml access-vba ms-access-2010

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

VBA 与 XSLT 可以在同一行中漂亮地打印带有结束标记的 XML

<Root ID="123"   Name="Board">
    <Element1 name="AAA"/>
    <Element2 name="BBB"/>
    <Element3 name="CCC"/>
    <Element4 name="DDD" Age="56" Address="78"/>
    <Nested_Elements>
      <Nested Number="125"/>
      <Nested Number="250"/>
      <Nested Number="500"/>
      <Nested Number="1000"/>
    </Nested_Elements>
</Root>
Run Code Online (Sandbox Code Playgroud)

我编写了 VBA 代码来导出 XML 并使用 XSLT 样式通过添加以下内容来漂亮地打印它

    Set xslDoc = New MSXML2.DOMDocument
xslDoc.LoadXML "<?xml version=" & Chr(34) & "1.0" & Chr(34) & "?>" _
        & "<xsl:stylesheet version=" & Chr(34) & "1.0" & Chr(34) _
        & "                xmlns:xsl=" & Chr(34) & "http://www.w3.org/1999/XSL/Transform" & Chr(34) & ">" _
        & "  <xsl:strip-space elements=" & Chr(34) & "*" & Chr(34) …
Run Code Online (Sandbox Code Playgroud)

xml xslt vba msxml

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