gpt4 book ai didi

c# - 如何在 C# 中具有不同前缀的 XmlNode 中定义新的 XML 命名空间?

转载 作者:行者123 更新时间:2023-12-04 17:02:35 25 4
gpt4 key购买 nike

我有一个像这样创建的 XmlNode:

XmlNode nodeSecurity = xmlDoc.CreateNode(XmlNodeType.Element, "wsse", "Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");

结果如下所示:
<wsse:Security />

wsse-Namespace 已经由父节点声明,因此该节点不包含“xmlns:wsse='...'”-attribute(未知 namespace 将在自动 xmlns-attribute 中声明)。

现在我的问题:
我需要在此处声明一个新的命名空间,因此结果如下所示:
<wsse:Security wsu:xmlns='....' />

我尝试添加这样的属性:
XmlNode attr = xmlDoc.CreateNode(XmlNodeType.Attribute, "wsu", "blabla");
nodeSecurity.Attributes.SetNamedItem(attr);

结果是:
<wsse:Security p4:wsu="" xmlns:p4="blabla" />

代替:
<wsse:Security wsu:xmlns="blabla" />

我在这里做错了什么?

最佳答案

试试这个

XmlAttribute attr = xmlDoc.CreateAttribute("wsu", "xmlns", "namespace");
attr.Value = "blabla";
nodeSecurity.Attributes.Append(attr);

结果
<wsse:Security wsu:xmlns="blabla" xmlns:wsu="namespace" />

在这种情况下, wsu:xmlns是一个名为 xmlns 的属性和前缀 wsu .属于以 xmlns:wsu 形式设置的前缀的命名空间.

关于c# - 如何在 C# 中具有不同前缀的 XmlNode 中定义新的 XML 命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37839933/

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