我已经在网上看了几天如何做到这一点。我发现代码的小元素,但我似乎错过了较大的项目。
我有一些xml文件,我需要编辑标签内的额外空格(innertext),我需要取出许多换行符(或返回 - 不确定我是否有正确的术语)。同样,有一些元素,比如一些文本,我想保留文本,但只删除标签(文本将被吸收到父标签,这就是为什么我需要摆脱空格和返回。
<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
有任何帮助吗?顺便说一下,我得到的所有帮助都很棒。我是一个新手,但是从你身上学到了很多,现在有一个非常酷的应用程序,让人们认为我知道我在做什么。 ; - )
答案 0 :(得分: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)