0

いくつかの文字列があり、特定のポイントでいくつかの改行を挿入したいと思います。

ロジスティクスのいくつかを理解しましたが、おそらく正規表現の経験が限られているため、全体としてこの問題を解決することはできないようです。

基本的に、すべて1行にあるXMLタグの長い文字列があります。データをよりフォーマットして見栄えを良くするために、特定のポイントに改行を追加したいと思います。私はCodeMirrorを使用してこのデータをWebページに表示していますが、何らかの理由ですべてが1行目に表示されています。

だから私はこのようなものから行く必要があります:

<Sample><Name></Name><PhoneNumber><AreaCode></AreaCode><Number></Number></PhoneNumber></Sample>

このようなものに:

<Sample>
  <Name></Name>
  <PhoneNumber>
    <AreaCode></AreaCode>
    <Number></Number>
  </PhoneNumber>
</Sample>

CodeMirrorは、残りのフォーマットを処理します。必要なのは、正規表現またはある種のループを使用して、適切な場所に改行を挿入することだけです。タグは変更されるか変更される可能性があるため、正規表現を使用する必要があると思います。

\ nと&#xDで改行を挿入することに成功しましたが、適切な場所を検出するために正規表現を取得できないようです。

どんな助けでも大歓迎です。ありがとう。

更新 私はこれを見落としましたが、角かっこは実際には<および>として送信されています

したがって、タグの例は次のようになります。

&lt;PhoneNumber&gt;

また

&lt;/PhoneNumber&gt;

したがって、基本的には、終了タグまたは子タグを含む開始タグである\nすべての後に挿入する必要があります。&gt;

4

2 に答える 2

1

ここにドラゴンがいます。

少し前に答えた非常によく似た質問を指摘したいと思います。これは、自分が何をしているのかを本当に理解していない限り、XMLを自分で解析しようとすべきではない理由を説明するのに役立ちます。

優れた改行などを取得したい場合は、XMLデシリアライザーを使用してください。

于 2012-06-04T16:16:42.030 に答える
0

このregexパターンを試してください:

  >\s*<(?!/)

交換用ストリング:>\n<

アップデート:

&gt;\s*&lt;(?!/)
于 2012-06-04T16:16:12.337 に答える