问题标签 [ixmldomdocument]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 保存没有结束标记的 IXMLDOMDocument
通过 C++ 使用 MSXML,当我调用 时IXMLDOMDocument::save
,空 XML 元素将获得一个结束标记,如下所示:
但我希望它保存为:
我需要做什么才能做到这一点?
xml - 进程外 MSXML IXMLDOMDocument::save 保存在哪里?
MSXML IXMLDOMDocument::save 保存在哪里?我的意思是当它使用文件名参数调用时。
“C:\pathto\mydoc.xml”会在哪里?
考虑 XMLDOMDocument 不在进程中,在这种情况下位于不同的物理机器上。它会将其保存到调用机器的“C:...”还是托管 COM 对象的服务器?
merge - 合并两个 XMLDOMDocument
msxml 中是否有任何简单的方法可以合并两个 xml 文档(IXMLDomDocuments)?我想将其中一棵树嵌入为第二棵树的子节点。
我看到 IXMLDomDocument3 提供了 importNode,但无法使其正常工作。这是要走的路还是有其他解决方案?
谢谢,丹
c++ - 如何在 C++ 中针对 XSD 验证 XML 节点?
请注意,我要求对特定节点而不是整个文件进行验证。举些例子
对于这个 XML 文档,我有一个 wholeDoc.XSD 可用于验证除“UserDefinedNode”之外的整个文档(此节点在 xsd 中使用“any”标记指定,允许用户在该节点下定义任何内容)。
是否可以有一个单独的 userdefined.XSD 文件来验证“UserDefinedNode”?是否可以使用 MSXML for C++ (IXMLDomDocument) 来验证这一点?
谢谢!
xml - 像 XmlTextWriter 一样保存 XML,但使用 DOM
当我使用 XmlDocument 在 C# 中构建 XML 时,我想将 XML 保存到文件中,包括编码信息,我使用 XmlTextWriter,如下所示:
使用上面的代码,我得到的字符串具有以下语法:
我希望使用 IXMLDOMDocument 方法具有相同的行为。在这个场景中,我知道提取 XML 字符串的唯一方法是通过该xmlDoc.xml
方法。但是,使用这种方法,字符串是完全不同的,编码也是如此:
有没有一种方法可以像使用 XmlTextWriter 一样输出 IXMLDOMDocument,并且具有相同的编码结果?
Tks
编辑
我用来通过 DOM 生成 XML 的代码在 Delphi 中:
我的主要问题是生成的字符串编码,因为我将生成的 WideString 传输到 C# WebService,当我在 XmlDocument 中读取它时,带有任何重音的字符都是错误的。当我在 C# 中生成 XML 时,通过 XmlTextWriter 将其导出,然后将其发送回 Delphi,并通过 DOM 加载它,字符是正确的。
编辑
当我使用 时vXML.Save(file_name.xml)
,保存的文件被正确编码,如果我将它加载到 WideString(Delphi 中的 Unicode 字符串)中,并将其传输到 Web 服务,效果很好。但是,如果不将其保存到磁盘并通过 DOM,我该怎么做呢?
xml - Delphi,IXMLDOMDocument2,由于无效字符而导致加载失败
使用 Delphi 2009 和 IXMLDOMDocument2
将 XML 加载到 IXMLDOMDocument2 时收到“在文本内容中发现无效字符”错误。该字符是 1B(十六进制)并且存在于 CDATA 部分中。Microsoft 的 XML 查看器 (IE) 可以很好地加载文件。XML看起来像......
<data><child><![CDATA[-- ]]></child></data>
注意:我尝试粘贴 XML,但删除了特殊字符。在 CDATA 部分中,我的 XML 文件中的“--”后面有 1B 字符。
我已经尝试添加到 XML 和其他编码的开头,但没有任何东西对我有用。有什么办法可以加载这个文件吗?
谢谢,迈克尔
xml - 在 Delphi 中使用 IXMLDOMDOCUMENT 删除 xsi:nil 属性
我有一个包含许多 xml 节点的 xml 文档。文档具有xsi:nil="true"
属性。如果我在这些节点上设置值,该nil
属性仍然存在,并且对我的 xsd 无效。
问题:
如何xsi:nil
使用带有 MSXML2_TLB 的 Delphi 2006 代码删除属性?
我试过这个:
它运行没有错误,但不会删除该属性。
xml - 如何让 IXmlDomDocument2.XML 正确转义引号?
我正在解决一个问题,即从我们的程序导出的 XML 不会转义引号,("
变成"
,)会导致接收端出现问题。它可以很好地转义 &s 和尖括号,但不能转义引号。
当我深入研究 XML 导出代码时,我发现它是一个非常简单的IXmlDomDocument2
DOM 接口。但是当我到达通过调用该.XML
方法生成 XML 字符串输出的步骤时,我撞到了一堵我无法追踪的专有性墙,因为所有工作都发生在C:\Windows\System32\msxml3.dll
.
所以显然微软的IXmlDomDocument2
实现知道如何转义一些符号而不是其他符号。更糟糕的是,显而易见但丑陋的解决方案(在我调用之前通过递归遍历整个文档并用 '"' 替换值中的所有引号来运行预处理步骤.XML
)将不起作用,因为该.XML
方法会看到那些 &s在那里逃脱他们!有什么办法可以解决这个问题吗?
ixmldomdocument - 在从 RAM 加载的 IXMLDOMDocument 上设置路径
我正在使用经典的 ASP。我有一个已经加载到 RAM 中的样式表。我的问题是,我的 XSLT 有一个
在里面。
当我将它从 RAM 加载到 IXMLDOMDocument 对象中时,相对路径会被丢弃。这是我当前的代码
现在,由于 XSLT 文件是从 RAM 加载的,因此计算机不知道如何计算 xsl:include 标记的相对路径。所以它试图从这里提取文件:C:\windows\system32\inetsrv
我真的只需要一种方法来设置“默认路径”或以某种方式模拟它。我想到的几个选项(我真的不想这样做)是:
- 将 XSLT 文件保存到我想要的磁盘上,然后使用 XSLTObj.load
- 从我希望路径所在的位置加载“虚拟”XSLT 文件,然后将内容替换为 RAM 中的 XSLT 内容
我真的更喜欢某种方式来设置我希望它使用的路径。想法?
com - 使用 msxml6/IXMLDOMDocument2 删除 XML 声明
我只想使用 C++/COM- 从 XML 中删除 XML 声明
使用IXMLDOMDocument2
界面msxml6
我怎样才能做到这一点?