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 に答える