gpt4 book ai didi

c# - 如何在xml文件中写点符号?

转载 作者:太空宇宙 更新时间:2023-11-03 22:24:15 25 4
gpt4 key购买 nike

我正在使用 XmlWriter 在 C# 中编写 XML 文件。我可以使用 WriteStartElement() 方法编写元素,并且可以使用 WriteAttributeString() 方法向该元素添加属性。但是,如果我想使用点符号添加属性,那么该怎么做呢?

<Element Attribute1="Value">
<Element.Attribute2> //How can i add attribute in this Notation.
//Add Value of Attribute2
</Element.Attribute2>
</Element>

我知道我可以调用 WriteStartElement("Element.Attribute") 但我正在寻找更简洁的方法。还有其他方法吗?

编辑1:

我有一个分层的对象(比如 obj)(以树的形式),这棵树的每个节点都有一些可以进一步包含节点的属性。我将这个对象保存在 Xml 中。为此,我正在使用 XmlWriter。在运行时,我遍历 obj 并使用 GetType().Name 读取节点类型并将其传递以编写 XmlNode 并使用 GetType().GetProperties() 我获得该节点的所有属性,然后我使用 foreach 一个一个地遍历 PropertyInfo 数组并将 PropertyInfo 的名称写为属性但是如果我有一个分配了节点的属性,我需要为此编写上面的点表示法。我正在寻找一种方法,我将只传递我的 PropertyInfo 和对象,它会以所需的格式为我写入。

感谢您的帮助!

编辑2:

对于一个特定的节点,我有像高度和宽度这样的属性,像 Children 是一个 Collection 并且隐含地驻留在 Xml 的层次结构中,像 Resources 也有一些属性并且每个都由父节点下的节点表示.但是保存时会这样写:

<Parent.Resources>
<Resource1 ...../>
<Resource2 ...../>
</Parent.Resources>

最佳答案

什么会比 WriteStartElement("Element.Attribute") 更干净?它准确描述了您正在做的事情——创建一个新元素,并使用该名称。

如果您确定要使用 XmlWriter,我会坚持使用该方法。然而,正如 Henrik 所说,LINQ to XML 通常首先是创建 XML 的一种更简单的方法:

XElement element = new XElement("Element",
new XAttribute("Attribute1", "Value"),
// This could contain nested elements instead of just a text node
new XElement("Element.Attribute2", "Second value")
);

编辑:现在你已经更新了问题,我仍然不明白你为什么要使用这个“点符号”。它不是隐含在 XML 的层次结构中吗?

关于c# - 如何在xml文件中写点符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1969171/

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