我有一个很大的字符串,我正试图将它从旧标准转换为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>
一旦完成了这项工作,就可以测试我的字符串的格式和有效性等。我正在努力研究如何获取leader元素的右括号,并将其替换为xml,如上所示。
Leader元素最初看起来像:
<fixfield id="LDR">^^^^^nam^a22^^^^^3a^4500</fixfield>
非常感谢您的帮助。
使用Regex:
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)
也许我只是没有正确理解你,但为什么不运行
temp1 = temp1 .Replace("</marc:controlfield>", "</marc:leader>");
在你的第一次转换工作之后?