如何在 XmlDocument 中的所有 XmlElements 中强制使用前缀? [复制]

     2023-02-16     290

关键词:

【中文标题】如何在 XmlDocument 中的所有 XmlElements 中强制使用前缀? [复制]【英文标题】:How to force prefix in all XmlElements in XmlDocument? [duplicate] 【发布时间】:2020-11-10 14:49:13 【问题描述】:

我需要创建如下所示的 XML。因为目标系统的延迟。我需要在所有节点前面都有前缀。所有节点都需要有“ns0”前缀。

<?xml version="1.0" encoding="utf-8"?>
<ns0:RootElement xmlns:ns0="http://top-secret">
    <ns0:MainMessage>
        <ns0:Date>1</ns0:Date>
        <ns0:Field1>2</ns0:Field1>
        <ns0:Field2>3</ns0:Field2>
    </ns0:MainMessage>
</ns0:RootElement>

没有架构。我需要根据用户输入添加节点。这是将节点添加到“ns0:MainMessage”元素的代码示例:

XmlDocument xml = new XmlDocument();
xml.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\"?><ns0:RootElement xmlns:ns0=\"http://top-secret\"><ns0:MainMessage></ns0:MainMessage></ns0:RootElement>");
XmlElement mainMessageElement = xml.DocumentElement["ns0:MainMessage"];
XmlElement newElement = mainMessageElement.OwnerDocument.CreateElement("Date");
newElement.Prefix = "ns0";
newElement.InnerText = "thisIsTest;
mainMessageElement.AppendChild(newElement);

这会产生如下输出:

<?xml version="1.0" encoding="utf-8"?>
<ns0:RootElement xmlns:ns0="http://top-secret">
    <ns0:MainMessage>
        <Date>thisIsTest</Date>
    </ns0:MainMessage>
</ns0:RootElement>

虽然我需要“日期”元素以“ns0”为前缀的输出,例如“ns0:Date”。像这样:

<?xml version="1.0" encoding="utf-8"?>
<ns0:RootElement xmlns:ns0="http://top-secret">
    <ns0:MainMessage>
        <ns0:Date>thisIsTest</ns0:Date>
    </ns0:MainMessage>
</ns0:RootElement>

如何强制此 Date 元素具有 ns0 前缀?

【问题讨论】:

【参考方案1】:

您需要将元素实际限定为正确的命名空间:

var newElement = mainMessageElement.OwnerDocument.CreateElement(
    "Date", "http://top-secret");
newElement.Prefix = "ns0";

但是请注意,使用XDocument API 可能更容易完成所有这些操作。

【讨论】:

如何在 C# 中比较 XmlDocument 的两个 XmlNode?

】如何在C#中比较XmlDocument的两个XmlNode?【英文标题】:HowtocomparetwoXmlNodesofXmlDocumentinC#?【发布时间】:2018-05-1705:43:32【问题描述】:这是一个示例xml。如果从某种意义上说要添加新字体,则在添加到首选项之前,将所有现有字... 查看详情

如何防止 XXE 攻击(.NET 中的 XmlDocument)

】如何防止XXE攻击(.NET中的XmlDocument)【英文标题】:HowtopreventXXEattack(XmlDocumentin.NET)【发布时间】:2012-12-2306:00:47【问题描述】:我们对我们的代码进行了安全审计,他们提到我们的代码容易受到外部实体(XXE)攻击。我正在使用... 查看详情

如何将 XMLDocument 反序列化为 C# 中的对象?

】如何将XMLDocument反序列化为C#中的对象?【英文标题】:HowtoDeserializeXMLDocumenttoobjectinC#?【发布时间】:2011-02-1107:09:54【问题描述】:我有一个接受XML字符串格式的.Net网络服务。XML发送到网络服务的字符串可以代表系统中的任何... 查看详情

如何在c#中关闭xmldocument

】如何在c#中关闭xmldocument【英文标题】:howtoclosexmldocumentinc#【发布时间】:2013-09-0509:03:00【问题描述】:我在Xamarin中为Android创建了一个应用程序。我打开一个xml文件,然后保存更改。我需要关闭它,但xmldocument没有任何选项可... 查看详情

如何在 XmlDocument 中插入/替换 XML 标签?

】如何在XmlDocument中插入/替换XML标签?【英文标题】:Howtoinsert/replaceXMLtaginXmlDocument?【发布时间】:2010-09-0603:58:13【问题描述】:我在java中有一个XmlDocument,使用WeblogicXmlDocument解析器创建。我想用我自己的数据替换这个XMLDocument... 查看详情

从保存在全局常量中的 xmlDocument 创建 Extjs 树面板

】从保存在全局常量中的xmlDocument创建Extjs树面板【英文标题】:CreatingExtjstreepanelfromxmlDocumentwhichissavedinglobalconstant【发布时间】:2017-01-0405:47:19【问题描述】:我正在努力在Extjs版本3.2.1中创建树形面板,我有代码可以从xml文档... 查看详情

如何在 .NET 中使用 XmlWriter 创建 XmlDocument?

】如何在.NET中使用XmlWriter创建XmlDocument?【英文标题】:HowtocreateaXmlDocumentusingXmlWriterin.NET?【发布时间】:2010-11-2317:41:22【问题描述】:许多.NET函数使用XmlWriter来输出/生成xml。输出到文件/字符串/内存是一个非常操作:XmlWriterxw=... 查看详情

有效地使用 XmlDocument.Save()

】有效地使用XmlDocument.Save()【英文标题】:UsingXmlDocument.Save()Effectively【发布时间】:2012-06-2622:22:16【问题描述】:我正在使用C#中的.XML文档,在我的代码范围内,我从中选择节点、添加节点和删除节点很多次。此文档的所有XML... 查看详情

如何在 C# 中使用 XmlDocument 和 XmlNode 修改现有 XML 文件

】如何在C#中使用XmlDocument和XmlNode修改现有XML文件【英文标题】:HowtomodifyexistingXMLfilewithXmlDocumentandXmlNodeinC#【发布时间】:2011-02-0306:23:42【问题描述】:我已经实现了在应用程序初始化时使用XmlTextWriter创建下面的XML文件。并且... 查看详情

如何在不删除旧文档的情况下将 XMLDocument 附加到 LocalStorage

】如何在不删除旧文档的情况下将XMLDocument附加到LocalStorage【英文标题】:HowtoappendanXMLDocumentintoLocalStoragewithoutdeletingtheolderone【发布时间】:2020-09-3000:38:54【问题描述】:我目前对此有疑问:我有一个创建XML文档的js代码,很简... 查看详情

XmlDocument CreateElement 在前缀元素下没有 xmlns

】XmlDocumentCreateElement在前缀元素下没有xmlns【英文标题】:XmlDocumentCreateElementwithoutxmlnsunderaprefixedelement【发布时间】:2013-10-2417:00:54【问题描述】:我正在尝试使用以下代码中的C#XmlDocument类向ebayFindingAPIWeb服务编写SOAP请求:XmlDoc... 查看详情

在 C# 中使用 Xmldocument 修改 xml

】在C#中使用Xmldocument修改xml【英文标题】:ModifyxmlwithXmldocumentinC#【发布时间】:2021-11-2822:27:24【问题描述】:我正在尝试按照此处HowtomodifyexistingXMLfilewithXmlDocumentandXmlNodeinC#的另一篇文章中的说明编辑xml文档的值。这是我的代码... 查看详情

如何在 c# .net CF 3.5 中使用 XmlDocument 向 xml 添加属性

】如何在c#.netCF3.5中使用XmlDocument向xml添加属性【英文标题】:HowtoaddattributestoxmlusingXmlDocumentinc#.netCF3.5【发布时间】:2011-03-2505:35:56【问题描述】:我需要为元素“aaa”创建一个带有前缀“xx”的属性“abc”。以下代码添加了前... 查看详情

xmldocument

 XmlDocument对象是用处理xml文件的。这里先介绍几个知识点。1.CDATA不检测文本,因为和网页的跨站攻击一样,xml也存在转义的问题。在CDATA块内的数据会原样输出。2.XmlNode和XmlElement的区别,后者是前者的子类,前者包括的范围... 查看详情

如何防止 .NET 的 XmlDocument 输出中出现空白 xmlns 属性?

】如何防止.NET的XmlDocument输出中出现空白xmlns属性?【英文标题】:Howtopreventblankxmlnsattributesinoutputfrom.NET\'sXmlDocument?【发布时间】:2010-09-1304:41:48【问题描述】:在.NET中从XmlDocument生成XML时,第一次插入一个没有关联命名空间的... 查看详情

c# xmldocument 获取特定节点之后的所有兄弟节点

】c#xmldocument获取特定节点之后的所有兄弟节点【英文标题】:c#xmldocumentgetallsiblingsnodesafteraspecificone【发布时间】:2021-05-1819:47:58【问题描述】:假设我有以下xml:<Report><Tablix></Tablix><TextboxName="TextboxSearchInjection"&g... 查看详情

如何使用 DataContractSerializer 从 XMLDocument 的单个节点反序列化?

】如何使用DataContractSerializer从XMLDocument的单个节点反序列化?【英文标题】:HowcanIuseDataContractSerializertodeserializefromasinglenodeofanXMLDocument?【发布时间】:2011-01-1215:44:42【问题描述】:DataContractSerializer在ReadObject中使用的读取器似乎... 查看详情

c#将多个xmlnode或xmlnodelist从一个xmldocument复制到另一个xmldocument(代码片段)

我搜索和搜索过,但一直无法找到我正在寻找的东西。可能只是我对XML缺乏了解,因为这是我第一次真正玩它。基本上我连接到PardotAPI并请求所有潜在客户。但是,数据是分页的,所以我一次只能获得200个潜在客户,并且它们以... 查看详情