添加到现有文件时未格式化的XML节点

时间:2013-04-19 07:10:14

标签: xml formatting

每当我向文件添加新节点时,我都在尝试在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

想知道是否有人可以提供协助,因为我不确定导致文件丢弃格式的原因。 提前谢谢。

1 个答案:

答案 0 :(得分: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文件中的新节点未格式化,就像您的示例一样。所有东西都像长条一样连在一起:(

经过数小时的研究和试验&amp;错误...

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

...
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。

我希望这有帮助。