所以我在VB.net中有一个应用程序(VS2017,如果这很重要),它生成一个xml文档以将数据提供给另一个应用程序。必须使用的xml文档在某些部分后需要以下行:
<format position="11" type="text" text=" "/>
所以当我追加text属性时,我想这样做:
element.SetAttribute("text"," ")
返回我需要的数据。但是,当然,他们不断将放大器投入混音。我尝试使用&
来代替&amp;,但这只会产生一个双放大器; amp;无处不在。
我尝试使用CData,但它包含了CData标记,但没有提供我需要追加的确切属性。
如何让
显示为属性值?
答案 0 :(得分:0)
我回答了其中一个yesterday,但您有一个具体问题。如果您使用xml序列化进行写入和阅读,那么这不是问题。
基于xml生成一个类。您可以复制xml的示例并执行编辑&gt;&gt;将xml粘贴为visual studio中的类。根据您的有限示例,
Partial Public Class format
<System.Xml.Serialization.XmlAttribute()>
Public Property position() As Byte
<System.Xml.Serialization.XmlAttribute()>
Public Property type() As String
<System.Xml.Serialization.XmlAttribute()>
Public Property text() As String
End Class
现在,您可以使用一个类来保存信息,而不是考虑以xml为中心。您可以在文件中对类进行序列化和反序列化:
Sub Main()
Dim x As New format() With ' format object to write to xml
{
.position = 11,
.type = "text",
.text = " "
}
Dim s As New Xml.Serialization.XmlSerializer(GetType(format))
Using f As New IO.FileStream("format.xml", IO.FileMode.OpenOrCreate)
s.Serialize(f, x)
End Using
Dim y As format ' format object to read from xml
Using f As New IO.FileStream("format.xml", IO.FileMode.Open)
y = s.Deserialize(f)
End Using
Console.WriteLine(y.text) ' value of y.text = " "
End Sub
&
并没有错;它是如何在xml中表示&
。它将使用序列化器正确写入和读取。
程序输出正确的值,尽管这是文件中的xml
<?xml version="1.0"?>
<format xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
position="11" type="text" text="&#13;&#10;" />