问题标签 [xmldocument]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
19436 浏览

c# - 如果删除了原始 XML 文档,则重新创建相同的 XML 文档

我开发了一个示例应用程序来创建 XML 文档,并创建并保存了 XML 文档。该应用程序仍在运行,但我删除了该 XML 文档,现在我正在尝试使用同一应用程序创建一个新的 XML。我有一个错误

此文档已有“DocumentElement”节点

我可以轻松地将节点附加到现有 XML 文档中,但我想做的是:如果我的 XML 被删除,应用程序必须创建一个具有相同标签的新 XML。

0 投票
5 回答
79394 浏览

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

许多 .NET 函数使用 XmlWriter 来输出/生成 xml。输出到文件/字符串/内存是一个非常操作:

有时,您需要操作生成的 Xml,因此希望将其加载到 XmlDocument 中,或者由于其他原因可能需要 XmlDocument,但您必须使用 XmlWriter 生成 XML。例如,如果您调用仅输出到 XmlWriter 的 3rd 方库中的函数。

您可以做的一件事是将 xml 写入字符串,然后将其加载到您的 XmlDocument 中:

然而这是低效的——首先将所有 xml 信息序列化为一个字符串,然后再次解析该字符串以创建 DOM。

你怎么能指向一个 XmlWriter 来直接构建一个 XmlDocument 呢?

0 投票
1 回答
4185 浏览

c# - C# - 使用 XmlDocument 操作 Xml

在 C# 中,如何使用 XmlDocument 将 xml 中的节点替换为另一个节点。

例如,考虑以下 xml 文件。

让我们说我需要更换

有一个新节点

0 投票
2 回答
2097 浏览

c# - 从 Asp.Net 中的现有 XmlDocument 数据创建新的 XmlDocument

我有一个来自 web 服务的 XmlDocument,我想使用 xml 的子集来填充 Gridview 控件。不幸的是,它包含我不需要的额外数据。所以我想从现有 xml 文档的子集创建一个新的 XmlDocument。

基本上,我想创建一个以 为根元素的新 XmlDocument。以下是原始 xml 文档的简短示例:

Anthony 的代码帮助我指出了正确的方向,但这实际上对我有用。

0 投票
3 回答
2045 浏览

c# - 单元测试 XmlDocument 的最佳实践

对于单元测试 XmlDocument,我有点担心我编写测试用例的方式。

为了断言 XmlDocument,我手动创建了 XmlElements。有时要测试的 XmlDocument 很大,所以我需要编写大量代码来构建预期的 xmldocument。工作量巨大。

XmlDocument 单元测试有没有更好的实现?

0 投票
3 回答
556 浏览

reflection - 为什么我不能动态构造 System.Xml.XmlDocument?

以下代码因“无法从程序集中加载类型 'System.Xml.XmlDocument'”错误而失败:

我有对 XmlDocument 所在的 System.Xml 的引用。

知道我做错了什么吗?

0 投票
4 回答
2602 浏览

c# - C# xml 读/写/xpath 不使用 XmlDocument

我正在重构现有系统中的一些代码。目标是删除 XmlDocument 的所有实例以减少内存占用。但是,当某些规则适用时,我们使用 XPath 来操作 xml。有没有办法在不使用将整个文档加载到内存中的类的情况下使用 XPath?我们已经用 XmlTextReader 替换了所有其他实例,但这些实例之所以有效,是因为没有 XPath 并且读取非常简单。

一些 XPath 使用其他节点的值作为其决策的基础。例如,消息节点的值可能基于数量节点的值,因此需要一次访问多个节点。

0 投票
5 回答
54450 浏览

c# - 决定何时使用 XmlDocument 与 XmlReader

我正在优化一个自定义对象-> XML 序列化实用程序,这一切都已完成并且可以正常工作,这不是问题所在。

它通过将文件加载到XmlDocument对象中,然后递归地遍历所有子节点来工作。

我想也许使用XmlReader而不是XmlDocument加载/解析整个事情会更快,所以我也实现了那个版本。

算法完全相同,我使用包装类来抽象处理 anXmlNode与 an的功能XmlReader。例如,GetChildren方法 yield 返回一个 childXmlNode或一个 SubTree XmlReader

因此,我编写了一个测试驱动程序来测试这两个版本,并使用了一个重要的数据集(一个 900kb 的 XML 文件,包含大约 1,350 个元素)。

但是,使用 JetBrains dotTRACE,我看到XmlReader版本实际上比XmlDocument版本慢!XmlReader当我遍历子节点时,读取调用似乎涉及一些重要的处理。

所以我说了这么多来问这个:

和 的优点/缺点是什么XmlDocumentXmlReader在什么情况下你应该使用它们?

我的猜测是,有一个文件大小阈值在XmlReader性能上变得更经济,并且内存密集型更少。但是,该阈值似乎高于 1MB。

ReadSubTree每次都打电话来处理子节点:

该测试适用于单个级别(即宽和浅)的许多对象 - 但我想知道XmlReader当 XML 深和宽时票价如何?即我正在处理的 XML 很像一个数据对象模型,1 个父对象到许多子对象,等等:1..M..M..M

我事先也不知道我正在解析的 XML 的结构,所以我无法对其进行优化。

0 投票
7 回答
208847 浏览

c# - XDocument 或 XmlDocument

我现在正在学习XmlDocument,但我刚刚遇到XDocument,当我尝试搜索它们的区别或好处时,我找不到有用的东西,你能告诉我为什么你会使用一个而不是另一个吗?

0 投票
1 回答
1933 浏览

asp.net - 如何在会话中保留基于 XML 的对象?

我正在从 XML 中的 Web 服务接收数据,并且我通过对象使用该数据,建立在收到的 XML 之上。因此,有时我需要在会话中的请求之间存储此类特定于用户的对象。我知道 XMLDocument 无法显式存储(状态服务器)......所以我正在制作一个糟糕的结构,例如:

所以我隐式存储 xml ......它在开发过程中对我很有用,因为我不确切知道我需要从整个对象中获得哪些属性 - 我可以在紧要关头使用 xpath 等制作简单的实验属性......

所以对我来说很舒服,但是每次我需要从该类的任何属性中获取一些数据时,从字符串构造 xmldocument 看起来效率很低。有什么办法吗?)谢谢。