我有一个非常大的字符串,我试图将旧标准转换为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>
非常感谢任何帮助。
答案 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>");
在你第一次转换工作后?