【问题标题】:How to change an xml file elements attributes in vb.net如何在 vb.net 中更改 xml 文件元素属性
【发布时间】:2014-05-03 04:12:03
【问题描述】:

您好,我有一个类 Booking 存储预订信息,我必须有 BOOKING 才能看起来像这样

<BOOKING partner="CompanyName" transaction="BOOKING" version="1.0">

其中 CompanyName 是一个变量。 我只是想知道是否有人可以帮助我将属性添加到预订元素。 我正在使用 vb.net 是向类添加属性还是在序列化期间或之后添加它们? 如果您可以帮助编写很棒的代码,

【问题讨论】:

  • 你有这方面的代码吗?你在使用 System.XML.XmlTextWriter 吗?

标签: xml vb.net


【解决方案1】:

假设这就是节点的全部内容(您没有关闭它),您的类将如下所示。

Imports System.Xml.Serialization

Class BOOKING
    <XmlAttribute>
    Public Property partner As String
    <XmlAttribute>
    Public Property transaction As String
    <XmlAttribute>
    Public Property version As String
End Class

用法

Dim s = New XmlSerializer(GetType(BOOKING))

如果是代码中的字符串

Dim xml = "<BOOKING partner=""CompanyName"" transaction=""BOOKING"" version=""1.0""/>"

或者你可以从文件中读取它

Using sr As New StreamReader("xmlFileNameAndPath.xml")
    xml = sr.ReadToEnd()
End Using

反序列化到您的 BOOKING 对象中

Dim b As BOOKING = s.Deserialize(New StringReader(xml))

然后您可以编辑该对象并将其序列化回原始 xml

b.partner = "different company"
Using sw As New StreamWriter("xmlFileNameAndPath.xml")
    s.Serialize(sw, b)
End Using

虽然在一个真正的 xml 文件中你会有一个 XmlRoot 元素(此解决方案使用 BOOKING 作为根),但你可以在其中有多个 BOOKING 元素。希望这能让你滚动。

【讨论】:

    【解决方案2】:
          Dim swLineItem As New IO.StringWriter()
            Dim xmlWriter As New System.Xml.XmlTextWriter(swLineItem)
    
     xmlWriter.WriteStartDocument()
       xmlWriter.WriteStartElement("YourOuterMostElement")
         xmlWriter.WriteStartElement("Booking") 
           xmlWriter.WriteAttributeString("partner", "CompanyName")
           xmlWriter.WriteAttributeString("transaction", "BOOKING")
           xmlWriter.WriteAttributeString("version", "1.0")
    
         xmlWriter.WriteEndElement()
        xmlWriter.WriteEndElement()
     xmlWriter.WriteEndDocument() 
    

    【讨论】:

      猜你喜欢
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多