c++ - 如何使用 MSXML 从 XML 文档中获取 namespace 前缀?

标签 c++ xml msxml

例如,
在本文档中

< ?xml version="1.0" ? >   

< SOAP-ENV:Envelope 

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 

xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

xmlns:ns1="http://opcfoundation.org/webservices/XMLDA/1.0/" 

xmlns:ns2="Service"> 

< SOAP-ENV:Body id="_0" >

如果我需要选择元素“Body”,我需要知道前缀“SOAP-ENV”。我怎样才能得到它?获取根元素并切掉冒号 (:) 对我来说似乎是一个肮脏的想法,我相信应该有一个巧妙的方法来做到这一点。 Google 没有帮助(可能是我没有在搜索正确的东西)。

最佳答案

如果您正在进行 XML 处理,则不需要知道前缀。

要选择 XML 文档中的节点,您不需要知道前缀。您需要知道命名空间,而不是前缀。

如果您正在处理 SOAP 文档,那么您知道 namespace 是 http://schemas.xmlsoap.org/soap/envelope/。这就是您所需要的。在 XML 应用程序中,您可以分配自己的命名空间前缀。

关于c++ - 如何使用 MSXML 从 XML 文档中获取 namespace 前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2422155/

相关文章:

C++ XLST 转换无法使用 MSXML 3.0

c++ - 从具有任意数量空格的文件中抓取数据集

c++ - boost::property_tree xml pretty-print 、格式化

ios - 使用 NSXMLparser,如何解析具有相同名称标签但元素不同的 xml 文件?

Delphi "DOMVendor"Open XML 和 Xerces : known limitations?

c++ - 微软XML。获取数据为 Base64

c++ - glslang 无法解析内置函数

c++ - 使用 giflib 将 opencv mat 编码为 gif

c++ - WinAPI:创建没有标题栏的可调整大小的窗口,但带有最小化/最大化/关闭按钮(如 Firefox/Chrome/Opera)

php - 元素上不允许尾随斜线