加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML和C# – WriteEndElement

发布时间:2020-12-16 23:02:41 所属栏目:百科 来源:网络整理
导读:我正在使用System.Xml在C#中创建 XML文档 我的问题希望是一个简单的问题,我是否需要使用WriteEndElement来关闭XML标记? 例如,我发现以下代码将使用或不使用’writer.WriteEndElement();’进行编译并以任何方式生成相同的XML,但是如果我把’writer.WriteEndE
我正在使用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( ),自动将内容包装在开始/结束标记中.

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读