0

古い標準からmarc21xml標準に変換しようとしている非常に大きな文字列があります。

次のコード行:

temp1 = inputString.Replace("<marc:controlfield tag=\"LDR\">", "<marc:leader>");

次を生成します。

<marc:leader>^^^^^nam^a22^^^^^3a^4500</marc:controlfield>

問題は非常に明白です。

特定の用語に対して包括的変換を実行し、それを「marc:controlfield」に置き換えます。変換プロセスの終わりに向かって、リーダー要素の処理を開始します。それが私が今いるところです。そこにあるxmlに精通している人はそれを知っています:

</marc:controlfield>

する必要があります:

</marc:leader>

これが完了すると、文字列の整形式性や妥当性などをテストできます。上記のように、リーダー要素の閉じ括弧を取得してxmlに置き換える方法に苦労しています。

元々、Leader要素は次のようになります。

<fixfield id="LDR">^^^^^nam^a22^^^^^3a^4500</fixfield>

どんな助けでも大歓迎です。

4

2 に答える 2

2

正規表現を使用する:

strResult = Regex.Replace(inputString,
                          "<marc:controlfield tag=\"LDR\">([^<]*)</marc:controlfield>",
                          "<marc:leader>$1</marc:leader>");  

説明:

[^<]*  

means any character except: '<' 
(0 or more times, matching the most amount possible)  
于 2012-07-11T17:49:42.503 に答える
0

たぶん私はあなたを正しく理解していないだけなのに、なぜ走らないのか

temp1 = temp1 .Replace("</marc:controlfield>", "</marc:leader>");

あなたのための最初の変換作業の後?

于 2012-07-11T16:04:48.393 に答える