Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写短XML结束标记而不是长结束标记?_Xml_Vb.net_Attributes_Element - Fatal编程技术网

如何编写短XML结束标记而不是长结束标记?

如何编写短XML结束标记而不是长结束标记?,xml,vb.net,attributes,element,Xml,Vb.net,Attributes,Element,请原谅我的无知,我才刚刚开始学习VB,这是我的基本疑问。我找了很多,但找不到解决办法。我正在使用以下代码: Imports System Imports System.Xml Public Class Form1 Private Sub saveXML_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles saveXML.Click Dim settings As New XmlWrit

请原谅我的无知,我才刚刚开始学习VB,这是我的基本疑问。我找了很多,但找不到解决办法。我正在使用以下代码:

Imports System
Imports System.Xml

Public Class Form1

  Private Sub saveXML_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles saveXML.Click
    Dim settings As New XmlWriterSettings()
    settings.Indent = True

    Dim XmlWrt As XmlWriter = XmlWriter.Create("MyName.xml", settings)

    With XmlWrt
        .WriteStartDocument()
        .WriteComment("XML Database.")
        .WriteStartElement("Production")
        .WriteStartElement("Order")
        .WriteStartElement("Attribute")
        .WriteAttributeString("Type", "Order ID")
        .WriteAttributeString("Value", txtFullName.Text.ToString())
        .WriteFullEndElement()
        .WriteStartElement("Email")
        .WriteString(txtEmailAddress.Text.ToString())
        .WriteEndElement()
        .WriteStartElement("Tel")
        .WriteString(txtPhoneNumber.Text.ToString())
        .WriteEndElement()
        .WriteEndElement()
        .WriteEndDocument()
        .Close()
    End With

    MessageBox.Show("XML file saved.")
  End Sub
End Class
关于这一部分:

.WriteStartElement("Attribute")
.WriteAttributeString("Type", "Order ID")
.WriteAttributeString("Value", txtFullName.Text.ToString())
.WriteFullEndElement()
我明白了:

<Attribute Type="Order ID" Value="5"></Attribute>
<Attribute Type="OrderId" Value="5"/>
我如何写“/”并得到以下结果:

<Attribute Type="Order ID" Value="5"></Attribute>
<Attribute Type="OrderId" Value="5"/>

您必须使用而不是生成

<Attribute Type="Order ID" Value="5" /> 

而不是

<Attribute Type="Order ID" Value="5"></Attribute>.

但是,您可能希望使用XML文本,这使它更容易:

Dim xml = <?xml version="1.0" encoding="utf-8"?>
            <Production> 
            <Order> 
                <Attribute Type="Order ID" Value=<%= txtFullName.Text %> /> 
                <Email><%= txtEmailAddress.Text%></Email> 
                <Tel><%= txtPhoneNumber.Text %></Tel> 
            </Order> 
            </Production> 

xml.Save("MyName.xml")
Dim xml=
Save(“MyName.xml”)

这回答了OP的问题,但您还应该注意,任何区分这两种表单的接收软件都是不正确的,不能声称正在处理标准定义的XML。