以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML工具及XML开发环境 』  (http://bbs.xml.org.cn/list.asp?boardid=7)
----  使用MSXML新建节点,出现xmlns="" 属性  (http://bbs.xml.org.cn/dispbbs.asp?boardid=7&rootid=&id=20433)


--  作者:lazing
--  发布时间:7/16/2005 5:05:00 PM

--  使用MSXML新建节点,出现xmlns="" 属性
比如XML文档
<?xml version="1.0">
<root xmlns="http://someURLs.com">
<name/>
</root>

这是程序片断

IXMLDOMDocumentPtr docPtr;
IXMLDOMNodePtr pNode,pNewNode;
//读取上述文档到DOM

pNode = docPtr->selectSingleNode(_T("name"));
pNewNode = docPtr->createElement(_T("subnode"));

调查发现 pNode->namespaceURI 为 http://someURLs.com"
             pNewNode->namespaceURI 为 NULL
于是如果使用
pNode->appendChild(pNewNode);
输出XML文档就变成了
<?xml version="1.0">
<root xmlns="http://someURLs.com">
<name>
<subnode xmlns="" />
</name>
</root>

粗体部分是我不希望见到的,兄弟们,怎么办啊?


--  作者:floatinglee
--  发布时间:2/8/2006 4:13:00 PM

--  
这个问题解决了么?我现在也遇到了。正着急呢。
--  作者:nmgyao
--  发布时间:2/24/2006 2:59:00 PM

--  
不要使用下面的语句创建一个元素

pNewNode = docPtr->createElement(_T("subnode"));

使用createNode函数,其中 将该函数命名空间变量(nameSpaceURI)设置为要创建的元素的
父元素的命名空间就不会出现你说的问题了。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms