当前位置 : 主页 > 网页制作 > xml >

XML和C# – WriteEndElement

来源:互联网 收集:自由互联 发布时间:2021-06-13
我正在使用System.Xml在C#中创建 XML文档 我的问题希望是一个简单的问题,我是否需要使用WriteEndElement来关闭XML标记? 例如,我发现以下代码将使用或不使用’writer.WriteEndElement();’进行编译
我正在使用System.Xml在C#中创建 XML文档

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

例如,我发现以下代码将使用或不使用’writer.WriteEndElement();’进行编译并以任何方式生成相同的XML,但是如果我把’writer.WriteEndElement();’两次,该程序抛出异常.

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

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

谢谢

约翰

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

将包含层次结构视为堆栈 – Starts(“推送”)和Ends(“pops”)必须平衡.如果你试图“弹出”超出结束,那就是失败,抛出异常,就像你描述的那样.

例如,要在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( ),自动将内容包装在开始/结束标记中.

希望这可以帮助.

网友评论