Vb.net XmlTextWriter:空白的问题

Vb.net XmlTextWriter:空白的问题,vb.net,xmlwriter,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.WriteSta

实际上,我正在尝试使用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()
Dim writer作为新的XmlTextWriter(“FactElec.xml”,System.Text.Encoding.UTF8)
writer.WriteStartDocument(False)
writer.Formatting=格式化.缩进
writer.Indentation=2
编写人书面声明(“发票”)
writer.writeStarteElement(“sac:额外货币总计”)
writer.WriteElementString(“cbc:id”,“1001”)
writer.WriteWhitespace(“/n”)
writer.WriteRaw(“+TotGrav+
“/n”)
writer.WriteEndElement()
writer.WriteEndDocument()
writer.Flush()
writer.Close()
问题是writer.WriteWhitespace中有一个错误,表示它必须为空,但我需要下一个WriteRaw出现在下一行中。刚才它出现在cbc:id旁边

如果我不能更好地解释的话,谢谢你,对不起

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

你可以用更简洁的方式创建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
导入
进口
公共模块XmlInvoiceHelper
Public Sub SaveWithValue(totGrav为整数)
Dim xml作为XElement=
1001
将writer用作新的XmlTextWriter(“YourFile.xml”,Encoding.UTF8)
Save(writer);
终端使用
端函数
端模块
对于名称空间
sac
cbc
,您需要在代码文件的开头添加
Imports
行,以支持它们用于Xml文本代码。

您可以使用这种方式创建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
导入
进口
公共模块XmlInvoiceHelper
Public Sub SaveWithValue(totGrav为整数)
Dim xml作为XElement=
1001
将writer用作新的XmlTextWriter(“YourFile.xml”,Encoding.UTF8)
Save(writer);
终端使用
端函数
端模块

对于名称空间
sac
cbc
,您需要在代码文件的开头添加
Imports
行,以支持Xml文本代码。

首先,您看到了什么具体错误,得到了什么输出,以及希望看到什么输出?其次,您的
/n
看起来像是在尝试换行符-通常是
\n
,但在VB中不起作用。相反,您可以使用
Environment.NewLine
。我没有得到任何信息,我向我显示了一个错误,在这一部分中,我需要像1004 48.00这样的东西,全部分离。首先,您看到了什么具体的错误,您得到了什么输出,以及您希望看到什么输出?其次,您的
/n
看起来像是在尝试换行符-通常是
\n
,但在VB中不起作用。相反,您可以使用
Environment.NewLine
。我没有得到任何信息,我向我显示了一个错误,在这一部分中,我需要类似于1004 48.00的内容。所有separateEdit在这一部分中不起作用:使用(var writer=new XmlTextWriter(@“YourFile.xml”,Encoding.UTF8))xml.Save(writer);我在vb.NET中工作真的很感谢,你在这方面帮了我很多忙:)我很痛苦,因为这个xml有很多行,但是用这个更容易做到:)这部分不起作用:使用(var writer=new XmlTextWriter(@“YourFile.xml”,Encoding.UTF8))xml.Save(writer);我在vb.NET中工作真的很感谢,你在这方面帮了我很多:)我很痛苦,因为这个xml有很多行,但是使用它更容易做到:)