问题标签 [system.xml]

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 投票
1 回答
34 浏览

c# - 获取一个元素的值,但仅当它上面的元素具有特定值时

第一次在 Stack Overflow 上发帖。

我正在努力处理 C# 中的特定 XML 结构

下面的 XML 表示表中的列及其各自的值。自然地,您可以拥有多行。

我正在尝试获取它,以便如果单元格下的元素称为 ColumnUid = Col1,则将下面称为值的元素中的值添加到列表中。

因此,在我的示例中,我只想从 XML 的两行中获取值“Y”。

我一生都无法弄清楚如何让它发挥作用。请帮忙!

请原谅我的措辞不佳,我是编程和处理 XML 的新手。

0 投票
0 回答
45 浏览

c# - 使用 System.Xml.XmlReader 读取带有无效 XML 处理指令的 XML

我正在尝试从我正在连接的服务器读取 XML。不幸的是,我没有办法最终纠正这个问题。我遇到了一个例外:

我相信这是因为他们以数据开头,<? LLSD/XML ?>并且鉴于第三个字符是 a 它会引发此异常。我的问题是,我该如何解决这个问题?其余数据是有效的 XML。我已经能够使用 expat、tinyxml 等在 C++ 中成功解析它,但是 System.Xml.XmlReader 失败了。目前,我正在这样做:

我收到的示例消息:

0 投票
1 回答
66 浏览

c# - How to make object immutable yet serializable with System.Xml.Serialization in C#?

In my app I have a lot of XMLs to serialize from, so I have created quite a lot of models, to serialize to. I use System.Xml.Serialization, so it needs parameterless constructor and public access to properties to write deserialized data to.

Now, I want to implement Memento Pattern to provide Undo and Redo functionality, and in that case it would be good to be able to have immutable objects, so there would not be any bug related to that I changed some property instead of creating new instance.

The problem is I don't see any solution that would provide me both solutions at once - being able to deserialize objects and then provide immutability for Memento pattern (well, there is popsicle immutability but I am not sure about it). Creating separate objects (records or so) that my deserialized objects would be converted to after program is done with deserialization seems like solution, but it has a flaw o introducing a lot of new types that consume time and increase upkeep cost later.

Do you guys have other ideas or patterns that I could use?

0 投票
3 回答
36 浏览

c# - 使用 System.XML 反序列化无效 XML

我正在尝试反序列化一些我不负责生成的 XML。它有一个单一的节点和几个模块的各种分支。问题是每个模块可能具有相似的子节点,这些子节点具有不同的节点和属性,但名称相同。这些相似的节点没有命名空间。在抽象中,它看起来像这样作为目标类型。

我似乎有各种建议来用命名空间注释我的 pocos 以避免在我尝试XmlSerializer使用同时具有和作为成员的Root类型构造一个时产生的异常。Module1Module2

我认为如果使用System.Text.Json我不会有这个问题,因为类型是由 poco 类结构决定的,而不是我被反序列化的节点的名称。

有没有办法以整体形式反序列化这个对象,也许是通过用装饰器注释Module1.Node和poco 类?Module1.Node

我尝试时找不到相关的装饰器。我确实成功地停止了XmlSerializer构造函数异常,但它停止识别Node类型并且也无法反序列化。

我的下一步将为XmlSerializer每个模块创建单独的实例,并尝试看看我是否可以取消Root无论如何感觉效率低下的对象。

这是小提琴中的设置示例: https ://dotnetfiddle.net/0twN0O