0

每当我向文件中添加新节点时,我在尝试在 XML 文件中维护我的格式时遇到问题。例如,如果我最初从头开始创建 XML 文件,则格式正确,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Data>
  <Settings>
    <DropBoxLocation></DropBoxLocation>
    <ServerName></ServerName>
    <DatabaseName></DatabaseName>
    <Username></Username>
    <Password></Password>
    <OnlineFilename></OnlineFilename>
    <OfflineFilename></OfflineFilename>
    <EftposFilename></EftposFilename>
    <BankFilename></BankFilename>
    <POSFilename></POSFilename>
    <UnprocessedFilename></UnprocessedFilename>
    <SalesFilename></SalesFilename>
    <FileReadDelay></FileReadDelay>
  </Settings>
</Data>

但是,每当我向预先存在的文件中添加新节点时,我都会在文件底部得到以下未格式化的条目:

<?xml version="1.0" encoding="utf-8"?>
<Data>
  <Settings>
    <DropBoxLocation></DropBoxLocation>
    <ServerName></ServerName>
    <DatabaseName></DatabaseName>
    <Username></Username>
    <Password></Password>
    <OnlineFilename></OnlineFilename>
    <OfflineFilename></OfflineFilename>
    <EftposFilename></EftposFilename>
    <BankFilename></BankFilename>
    <POSFilename></POSFilename>
    <UnprocessedFilename></UnprocessedFilename>
    <SalesFilename></SalesFilename>
    <FileReadDelay></FileReadDelay>
<SEOFilename></SEOFilename><LBossFilename></LBossFilename><ProcessesFilename></ProcessesFilename></Settings>
</Data>

我添加新节点的代码如下所示:

Dim MyXML As New XmlDocument()
Dim MyXMLNode As XmlNode

        MyXML.PreserveWhitespace = True

        Try
            MyXML.Load(SettingsXMLFile)
            MyXMLNode = MyXML.SelectSingleNode("//Data/Settings/" & ElementName)
            If Not MyXMLNode Is Nothing Then
                MyXMLNode.InnerText = ElementValue.ToString
                MyXML.Save(SettingsXMLFile)
            Else
                Dim XMLRoot As XmlElement = MyXML.SelectSingleNode("//Data/Settings")
                Dim XMLChild As XmlElement = MyXML.CreateElement(ElementName)
                XMLChild.InnerText = ElementValue
                XMLRoot.AppendChild(XMLChild)
                MyXML.Save(SettingsXMLFile)
            End If

            MyXMLNode = Nothing
            MyXML = Nothing

想知道是否有人可以提供帮助,因为我不确定是什么导致文件丢失格式。提前致谢。

4

1 回答 1

0

我遇到了类似的问题。我试图更新服务器上现有的(格式正确的)xml 文件。

下面的代码示例在 javascript 函数中

...
xml = '<?xml version="1.0" encoding="utf-8" ?>';
xml += '<root>';
xml += '<child_A>Hello World</child_A>';
xml += '<child_B>Good World</child_B>';
xml += '</root>';
...

然后在 ASP 文件中,我尝试使用 appendChild 方法将新的 xml 节点添加到现有 xml 的根节点。添加到我的 xml 文件中的新节点未格式化,就像您的示例一样。一切都像一根长绳子一样连接在一起:(

经过数小时的研究和反复试验......

我的问题的解决方案...

...
xml = '<?xml version="1.0" encoding="utf-8" ?>';
xml += ' <root>';
xml += '   <child_A>Hello World</child_A>';
xml += '   <child_B>Good World</child_B>';
xml += ' </root>';
...

在字符串中放置空格!?!无论如何,它在 FireFox 上对我有用,我需要确保它也适用于 IE。

我希望这会有所帮助。

于 2013-09-19T15:13:03.503 回答