gpt4 book ai didi

c# - XML 和 C# - WriteEndElement

转载 作者:数据小太阳 更新时间:2023-10-29 02:00:50 27 4
gpt4 key购买 nike

我正在使用 System.Xml 在 C# 中创建 XML 文档

我的问题希望是一个简单的问题,我是否需要使用 WriteEndElement 来关闭 XML 标记?

例如,我发现无论是否使用“writer.WriteEndElement();”,下面的代码都可以编译并以任何一种方式生成相同的 XML,但是如果我输入 'writer.WriteEndElement();'两次,程序抛出异常。

writer.WriteStartElement("CustomerNo");
writer.WriteString("12345");
writer.WriteEndElement();

我并不懒惰,不介意把它放在需要的地方,如果它应该是这样的话,我只是需要一些指导。

谢谢

约翰

最佳答案

一般来说:是的,对于每个 WriteStartElement() 都必须有一个匹配的 WriteEndElement()。

将包含层次结构视为堆栈 - 开始(“推送”)和结束(“弹出”)必须平衡。如果您尝试“弹出”超出结尾,则失败并抛出异常,就像您描述的那样。

举个例子,在A元素中写一个B元素:

WriteStartElement("A");
WriteStartElement("B");
// ... attributes or content added here will become part af B element
WriteEndElement(); // Closes the open B element.
WriteEndElement(); // Closes the open A element.

更新:正如@Sam 在另一个答案中指出的那样,当 - 正如您给出的示例中那样 - 您只想写出简单的内容元素(没有属性或子元素)时,您可能想看看便利性方法 WriteElementString(),自动将内容包装在开始/结束标记中。

希望这对您有所帮助。

关于c# - XML 和 C# - WriteEndElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7588032/

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