0

我有一个非常大的字符串,我正在尝试将其从旧标准转换为 marc21 xml 标准。

以下代码行:

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 回答