查了很多资料。都说没有区别,是空元素的两种表达方式。
有些英文资料上写:有部分XML解析器并不支持<BARCODE />这种方式暂且不管他们的区别了,如果我一定要实现<BARCODE> </BARCODE>  这样的表现方式应该怎样写?我查了JAVA jdom处理xml 的方式,他有实现<BARCODE> </BARCODE> 这种格式,我想NET里面一样有的。java是这样的
Format format = Format.getPrettyFormat();    
        //设置字符编码,默认为UTF-8    
        format.setEncoding("gbk");    
        //设置扩展空元素,即<test/>为<test></test>    
        format.setExpandEmptyElements(true);    
        //子节点和父节点差几个空格,默认是2个    net里面也有编码,和格式;就是没有找到扩展空元素的写法。                    Dim writer As New XmlTextWriter(stream, Encoding.UTF8)                    ' Causes child elements to be indented
                    writer.Formatting = Formatting.Indented
                    writer.Indentation = 4

解决方案 »

  1.   


    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Indent = true;
    settings.OmitXmlDeclaration = true;
    XmlWriter writer = XmlWriter.Create("e:\\11111.xml", settings);// Write the book element.
    writer.WriteStartElement("book");// Write the title element.
    writer.WriteStartElement("title");
    writer.WriteString("");
    writer.WriteEndElement();// Write the close tag for the root element.
    writer.WriteEndElement();// Write the XML and close the writer.
    writer.Close();  
    你确信你执行过类似代码,他生成的是<title />???
    我这里这样就是生成<title></title>
      

  2.   

    writer.WriteStartElement("item");
                writer.WriteString("");
                writer.WriteEndElement();
      

  3.   

    我这边确实是<title />下面是我的代码VB:While drSubSub.Read                            price = drSubSub.Item("unitprice")
                                product = drSubSub.Item("nikecode")
                                quantity = drSubSub.Item("qty")
                                'ITEM  element
                                writer.WriteStartElement("ITEM")
                                writer.WriteElementString("PRICE", price)
                                '   writer.WriteElementString("UPC", DBNull.Value.ToString) '此处插入空值
                                'writer.WriteStartElement("UPC")
                                ' writer.WriteFullEndElement()
                                writer.WriteStartElement("title")
                                writer.WriteString("")
                                writer.WriteEndElement()                            writer.WriteElementString("PRODUCT_ID", product)
                                writer.WriteElementString("QUANTITY", quantity)
                                writer.WriteEndElement()                        End While
      

  4.   

    和这个有关?我是用Dim writer As New XmlTextWriterDim stream As FileStream
                        stream = File.OpenWrite(path & xmlFileNameS)
                        Dim writer As New XmlTextWriter(stream, Encoding.UTF8)                    ' Causes child elements to be indented
                        writer.Formatting = Formatting.Indented
                        writer.Indentation = 4
      

  5.   


    Dim settings As XmlWriterSettings = New XmlWriterSettings()
    settings.Indent = True
    settings.OmitXmlDeclaration = True
    Dim writer As XmlWriter = XmlWriter.Create("e:\\1111.xml", settings)' Write the book element.
    writer.WriteStartElement("book")
    writer.WriteElementString("PRICE", "111")' Write the title element.
    writer.WriteStartElement("title")
    writer.WriteString("")
    writer.WriteEndElement()' Write the close tag for the root element.
    writer.WriteEndElement()' Write the XML and close the writer.
    writer.Close()
    这是VB.NET跑出来的<book>
      <PRICE>111</PRICE>
      <title></title>
    </book>把你的代码贴全
    你的writer是怎么声明的?
      

  6.   

    谢谢,改成下面的就可以了 '
                        '' Open a new xml file stream for writing
                        'Dim stream As FileStream
                        'stream = File.OpenWrite(path & xmlFileNameS)
                        'Dim writer As New XmlTextWriter(stream, Encoding.UTF8)                    '' Causes child elements to be indented
                        'writer.Formatting = Formatting.Indented
                        'writer.Indentation = 4
                        Dim settings As New XmlWriterSettings()
                        settings.Indent = True
                        settings.OmitXmlDeclaration = True
                        Dim writer As XmlWriter = XmlWriter.Create(path & xmlFileNameS, settings)