我有一个邮件申请.在发送给每个收件人时,我正在写一个名为mail.xml的XML文件.我使用以下代码:
Dim from As String = txtFrom.Text
Dim txto As String = txtTo.Text
Dim subj As String = txtSubject.Text
Dim body As String = txtBody.Text
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.NewLineOnAttributes = True
Using writer As XmlWriter = XmlWriter.Create("C:\xmlmailfile.xml", settings)
writer.WriteStartDocument()
writer.WriteStartElement("EMail")
writer.WriteStartElement("From")
writer.WriteStartAttribute("From")
writer.WriteValue(from)
writer.WriteEndAttribute()
writer.WriteStartElement("To")
writer.WriteStartAttribute("To")
writer.WriteValue(txto)
writer.WriteEndAttribute()
writer.WriteStartElement("Subject")
writer.WriteStartAttribute("Subject")
writer.WriteValue(subj)
writer.WriteEndAttribute()
writer.WriteStartElement("Body")
writer.WriteStartAttribute("Body")
writer.WriteValue(body)
writer.WriteEndAttribute()
writer.WriteEndElement()
writer.WriteEndDocument()
writer.Flush()
End Using
Run Code Online (Sandbox Code Playgroud)
输出是:
<?xml version="1.0" encoding="utf-8" ?>
<EMail>
<From From="abc@xyz.com">
<To To="def@pqr.com">
<Subject Subject="Hi">
<Body Body="Hello" />
</Subject>
</To>
</From>
</EMail>
Run Code Online (Sandbox Code Playgroud)
在这里,我无法附加到现有输出.只输出一个"电子邮件"部分.我想为每个收件人添加"电子邮件"部分.但是,在上面的代码中,新的部分替换了之前编写的部分.
我怎么能做到这一点?
XML文档只能有一个根元素.我建议你有一个根Emails元素,Email下面有元素.请注意,您仍然无法在同一文件中追加新元素 - 您必须阅读现有文件并重写它.理论上你可以覆盖最后一行(你总是知道它会有多长,所以你可以找到正确的位置)但是将文件读入内存更新,附加一个新Email元素,然后写出来整个文件再次.
我也认为这是一个有点奇怪有Body元素中的主题元素.我建议这样的结构:
<?xml version="1.0" encoding="utf-8" ?>
<Emails>
<Email>
<From Address="abc@xyz.com">
<Recipient Type="To" Address="def@pqr.com" />
<Recipient Type="Cc" Address="ghi@pqr.com" />
<Subject>Hi</Subject>
<Body>Body text</Body>
</Email>
<Email>
<!-- Second email comes here -->
</Email>
</Emails>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3171 次 |
| 最近记录: |