zoukankan      html  css  js  c++  java
  • c# 写入xml 怪异的事情

    碰到一个奇怪的问题,为什么我写这个节点,怎么都关闭不了元素:

     XmlWriterSettings settings = new XmlWriterSettings();
                settings.Indent = false;
                settings.NewLineOnAttributes = false;
    
                XmlWriter writer = XmlWriter.Create("booknew.xml", settings);
               
                writer.WriteStartElement("DBaseLink");
                writer.WriteAttributeString("Confidentiality", "Outsourcer");
                writer.WriteAttributeString("Type", "Bug");
                writer.WriteAttributeString("Database", "AXSE");
                writer.WriteAttributeString("Value", "1123456");            
                writer.WriteEndElement(); // close DBaseLink
               
                
    
                //clean up
                writer.Flush();
                writer.Close();

    太诡异了,每次都是这个结果

    <?xml version="1.0" encoding="utf-8" ?>

    <DBaseLink Confidentiality="Outsourcer" Type="Bug" Database="AXSE" Value="1123456" />

    就是没有关闭元素的/DBaseLink.

    PS: 后来有博友回答了这个问题,当一个element 只有attribute 没有value的时候,就是那样结尾的。

    加入一个XML规则的解释

    规则6:所有的空标识也必须被关闭
    空标识就是标识对之间没有内容的标识。比如<br>,<img>等标识。在XML中,规定所有的标识必须有结束标识,针对这样的空标识,XML中处理的方法是在原标识最后加/,就可以了。例如:
    <br>应写为<br />;
    <META name="keywords" content="XML, SGML, HTML">应写为<META name="keywords" content="XML, SGML, HTML" />;
    <IMG src= "cool.gif">应写为<IMG src= "cool.gif" />

  • 相关阅读:
    298. Binary Tree Longest Consecutive Sequence
    117. Populating Next Right Pointers in Each Node II
    116. Populating Next Right Pointers in Each Node
    163. Missing Ranges
    336. Palindrome Pairs
    727. Minimum Window Subsequence
    211. Add and Search Word
    年底购物狂欢,移动支付安全不容忽视
    成为程序员前需要做的10件事
    全球首推iOS应用防破解技术!
  • 原文地址:https://www.cnblogs.com/herbert/p/1768458.html
Copyright © 2011-2022 走看看