我遇到的问题如下。
我的问题的根本原因是“XML”解析(XML 用引号引起来,因为在这种情况下,它不是直接的 XML)和空格。
我需要能够转换这个:
"This is a <tag>string</tag>"
进入
"This is a {0}"
它必须能够处理嵌套标签之类的东西。我的计划是使用以下内容来获取我的替换文本。
var v = XDocument.Parse(string.Format("<root>{0}</root>", myString),LoadOptions.PreserveWhitespace);
var ns = v.DescendantNodes();
var n = "" + ns.OfType<XElement>().First(node => node.Name != "root");
该代码返回第一对匹配的标签。它可以处理嵌套等。唯一真正的问题是,即使使用“PreserveWhitespace”选项,回车也会被消除。 "\r\n"
转换为"\n"
. 这可以防止匹配,因此:
myString = myString.Replace(n,"{0}");
没有按预期工作。所以我试图想出一种方法让替代品正常工作,忽略空格,但我不知道如何开始......想法?