XmlTextWriter:WhiteSpace的问题

时间:2016-11-25 17:14:35

标签: vb.net xmlwriter

我实际上是在尝试使用xmltextwriter来创建一个xml,但我遇到了一些问题。

这就是我做的

Dim writer As New XmlTextWriter("FactElec.xml", System.Text.Encoding.UTF8)
    writer.WriteStartDocument(False)
    writer.Formatting = Formatting.Indented
    writer.Indentation = 2
    writer.WriteStartElement("Invoice")

    writer.WriteStartElement("sac:AdditionalMonetaryTotal")
    writer.WriteElementString("cbc:id", "1001")
    writer.WriteWhitespace("/n")
    writer.WriteRaw("<cbc:PayableAmount currencyID=""PEN"">" + TotGrav + 
    "</cbc:PayableAmount>/n")
    writer.WriteEndElement()
    writer.WriteEndDocument()
    writer.Flush()
    writer.Close()

问题是我在writer.WriteWhitespace中出错,说它需要为空,但我需要下一行WriteRaw出现在下一行。刚才它出现在cbc:id

旁边

如果我无法更好地解释,请表示感谢和抱歉。

更新:或者,以防万一,如果你知道如何在cbc:PayableAmount中添加currencyID =“”PEN“”,而不使用WriteRaw,可能会更好,因为这就是让我遇到所有这些问题的原因< / p>

1 个答案:

答案 0 :(得分:0)

您可以使用XML Literals以较少出价的方式创建xml文件。

Imports <xmlns:sac="http://yoursacnamespace">
Imports <xmlns:cbc="http://yourcbcnamespace">

Public Module XmlInvoiceHelper
    Public Sub SaveWithValue(totGrav As Integer)
        Dim xml As XElement =
        <Invoice>
            <sac:AdditionalMonetaryTotal>
                <cbc:id>1001</cbc:id>
                <cbc:PayableAmount currencyID="PEN"><%= totGrav %></cbc:PayableAmount>
            </sac:AdditionalMonetaryTotal>
        </Invoice>

        Using  writer As New XmlTextWriter("YourFile.xml", Encoding.UTF8)
            xml.Save(writer);
        End Using
    End Function
End Module

对于名称空间saccbc,您需要在代码文件的开头添加Imports行,以支持它们用于Xml文字代码。