-1

文字列データを分割し、linq to xmlを使用してxml形式にビルドしようとしていますが、xml文字列を生成するのにいくつかの困難に直面しています

mystring = {1:abcd}{2:efgh}{3:/r/n:12:mmm/r/n:65:nnn}

必要な出力:

<MESSAGE>
<BLOCK1>
<VALUE>abcd</VALUE>
</BLOCK1>
<BLOCK2>
<VALUE>efgh</VALUE>
</BLOCK2>
<BLOCK3>
<TAG>12</TAG>
<VALUE>mmm</VALUE>
<TAG>65</TAG>
<VALUE>nnn</VALUE>
</BLOCK3>
</MESSAGE>

上記と同じことについての親切なアドバイス

4

1 に答える 1

0
mystring = {1:abcd}{2:efgh}{3:/r/n:12:mmm/r/n:65:nnn}
  • 最初に正規表現を使用して、一致する括弧のパターンを取得します。

1:abcd 2:efgh 3:/r/n:12:mmm/r/n:65:nnn

  • 次に、文字列を含む結果の文字列を使用して、xml を構築します。/r/nのように、すべてを空のスペースに置き換えることができます"3:/r/n:12:mmm/r/n:65:nnn".Replace("/r/n", "")。次に、呼び出し.Split(':')て配列に変換します。

  • そこから、文字列配列をノードに解析するためのロジックを開発する必要があります。値が可能な場合int.TryParse(string, out int value)は TAG 要素に、それ以外の場合は VALUE 要素になります。

  • もちろん、空の配列要素はスキップします。Split(':', StringSplitOptions.RemoveEmptyEntries)結果の配列にそれらが表示されない場合は、分割でそれを行うことができます。

于 2012-07-07T14:26:26.227 に答える