需要一些帮助在C#中操作字符串?

时间:2012-07-11 15:51:36

标签: c# xml regex c#-4.0 marc

我有一个非常大的字符串,我试图将旧标准转换为marc21 xml标准。

以下代码行:

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

产生以下内容:

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

问题非常明显。

我对特定术语执行全面转换,并将其替换为“marc:controlfield”。在转换过程即将结束时,我开始处理leader元素。这就是我现在所处的位置。精通xml的人知道:

</marc:controlfield>

需要:

</marc:leader>

一旦完成,我的字符串可以测试良好的形成和有效性等。我正在努力如何抓住领导元素的右括号并用xml替换它,如上所示。

最初Leader元素如下:

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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分: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)  

答案 1 :(得分:0)

也许我只是没有正确理解你,但为什么不运行

temp1 = temp1 .Replace("</marc:controlfield>", "</marc:leader>");
在你第一次转换工作后