gpt4 book ai didi

xml - 需要帮助阻止 MSXML 添加命名空间

转载 作者:行者123 更新时间:2023-12-04 06:59:40 26 4
gpt4 key购买 nike

我正在使用 MSXML 4 生成以下 xml 字符串:

<?xml version="1.0">
<Parent_Element xmlns="http://1">
<Child_One>
<Child_Two xmlns="http://2">
<Child_Three>
</Child_Three>
</Child_Two>
</Child_One>
</Parent>

但是,我的 IXMLDOMDocument2Ptr 的输出始终包含 Child_Three 的命名空间:
<?xml version="1.0">
<Parent_Element xmlns="http://1">
<Child_One>
<Child_Two xmlns="http://2">
<Child_Three xmlns="http://1">
</Child_Three>
</Child_Two>
</Child_One>
</Parent>

我的理解是这种行为是 XML 标准的一部分,但是如果存在额外的命名空间,则接收 xml 的系统会拒绝它。如果有一个空的命名空间(即 xmlns=""),它也会拒绝 xml。

无论如何,MSXML 中是否可以避免添加或删除 Child_Three 的命名空间?

最佳答案

我想到了。

1) 我有一个缺陷,即使用文档命名空间而不是父节点中的命名空间。

2)通过#1 的修复,我最终得到了一个空的命名空间(xmlns="")。为了解决这个问题,我必须在创建节点时设置命名空间。在我创建节点然后在单独的调用中添加 xmlns 属性之前。

前:

pNode->createNode(NODE_ELEMENT, name, "");
pAttrib = pNode->createAttribute("xmlns")
pAttrib->put_NodeValue(namespace)

现在:
pNode->createNode(NODE_ELEMENT, name, "namespace");

关于xml - 需要帮助阻止 MSXML 添加命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2079209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com