0

我在网上看了几天关于如何做到这一点。我发现代码的小元素,但我似乎错过了较大的项目。

我有许多 xml 文件,我需要编辑标签(内部文本)中的额外空格,并且我需要删除许多换行符(或返回——不确定我是否有正确的术语)。同样,有些元素,比如一些文本,我想保留文本,但只删除标签(文本将被吸收到父标签中,这就是我需要去掉空格和返回的原因。

<root>
  <element>Some text here that has line breaks. Like this: 
    item        one 
    item two
  </element> 
</root>

需要它看起来像:

<root>
 <element>Some text here that has line breaks. Like this: item item two</element>
</root>    

我找到了这个,但我知道它不会起作用。我知道我可能需要一些可以读取和替换的代码(例如每个节点等)。

这是我的开始:

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
    Dim path As String = "c:\temp\"

    Dim doc As New XmlDocument
    doc.PreserveWhitespace = False
    doc.Load(path & filenm.Text)
    'need some loop though here with a doc.replace(something???)
    doc.Save(path & filenm.Text)
    doc.PreserveWhitespace = False
End Sub

有什么帮助吗?顺便说一句,我在这里得到的所有帮助都很棒。我是新手,但从你那里学到了很多,现在运行了一个非常酷的应用程序,让人们认为我知道我在做什么。;-)

4

1 回答 1

0

你可以试试

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
    Dim path As String = "c:\temp\"

    Dim doc As New XmlDocument
    doc.Load(path & filenm.Text)

    'loop through every text node
    For Each Node As XmlNode In doc.SelectNodes("//text()")
        Node.Value = System.Text.RegularExpressions.Regex.Replace(Node.Value, "\s+", " ").Trim
    Next

    doc.Save(path & filenm.Text)
End Sub

以下代码替换每个标签之间的所有空格。这没有回答问题,但可能对某人有所帮助。

'get XML content without whitespaces
Dim XmlContent As String = doc.OuterXml

'save the content
File.WriteAllText(path & filenm.Text, XmlContent)
于 2013-04-17T05:25:07.717 回答