gpt4 book ai didi

VB.NET XMLWriter : How to change what's in the header?

转载 作者:行者123 更新时间:2023-12-04 22:26:12 26 4
gpt4 key购买 nike

我需要制作一个 XML 文件 - 合作伙伴对 header 相当执着。显然,标题必须是这样的:

<?xml version="1.0"?>

但是每当我创建一个 XML 文件时,我都会得到这样的无关属性:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>

我的黑客想停止使用 XMLWriter 来制作文件,以便我对标题有更多的控制; “没问题,我将编写一个循环,将它自己的 XML 标记作为 StreamWriter 或其他东西,忘记这个 XMLWriter 对象......”但我必须承认,到目前为止,XMLWriter 使用起来相当优雅;肯定有什么地方我可以更改 XMLWriterSettings 对象说“请停止将您的自定义属性放入 XML header 中”,对吗?

这是相关的VB代码:
    Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = " "
settings.NewLineChars = "\n"
Using writer As XmlWriter = XmlWriter.Create(strFileName, settings)
writer.WriteStartDocument(True)
For Each kvp As KeyValuePair(Of String, String) In dictArguments

Dim key As String = kvp.Key
Dim value As String = kvp.Value

writer.WriteStartElement(key)
writer.WriteString(value)
writer.WriteEndElement()

Next

End Using

完美运行;但我找不到控制标题的方法。我当然可以找到完全删除它的方法,但这不是我们想要做的。

编辑:感谢您的帮助;到目前为止,一旦我们删除了 WriteStartDocument,它现在不再显示 standalone = yes。但是,我无法停止添加编码。有任何想法吗?

最佳答案

这样做的一种方法是使用 WriteProcessingInstruction 方法自己控制初始处理指令,因此:

    Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = " "
Using writer As XmlWriter = XmlWriter.Create(strFileName, settings)
writer.WriteProcessingInstruction("xml", "version='1.0'")
writer.WriteStartElement("root")
For Each kvp As KeyValuePair(Of String, String) In dictArguments

Dim key As String = kvp.Key
Dim value As String = kvp.Value

writer.WriteStartElement(key)
writer.WriteString(value)
writer.WriteEndElement()

Next
writer.WriteEndElement()

End Using

请注意,我还添加了一个“root”元素,以防您的字典包含多个元素(我猜字典键值都不是“root”:)

关于VB.NET XMLWriter : How to change what's in the header?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1027981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com