如何使用MSXML从XML文档中获取名称空间前缀?

时间:2010-03-11 02:34:31

标签: 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”。我怎么能得到它?得到一个根元素并切掉冒号(:)对我来说似乎是一个肮脏的想法,我相信应该有一个巧妙的方法来做到这一点。谷歌没有帮助(可能我不是在寻找合适的东西)。

1 个答案:

答案 0 :(得分:2)

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

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

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