所以我试图解析一些 XML,其创建不在我的控制之下。问题是,他们以某种方式得到了如下所示的节点:
<ID_INTERNAL_FEAT_FOCUSED_EXPERTISE_(MORNINGSTAR) />
<ID_INTERNAL_FEAT_FOCUSED_EXPERTISE_(QUARTERSTAFF) />
<ID_INTERNAL_FEAT_FOCUSED_EXPERTISE_(SCYTHE) />
<ID_INTERNAL_FEAT_FOCUSED_EXPERTISE_(TRATNYR) />
<ID_INTERNAL_FEAT_FOCUSED_EXPERTISE_(TRIPLE-HEADED_FLAIL) />
<ID_INTERNAL_FEAT_FOCUSED_EXPERTISE_(WARAXE) />
Visual Studio 和 .NET 都认为上面使用的“(”和“)”字符完全无效。不幸的是,我需要处理这些文件!有没有什么方法可以让 Xml Reader 类在看到这些字符时不会惊慌失措,或者动态转义它们或其他什么?我可以对整个文件进行某种预处理,但我确实想要“(”和“)”字符,如果它们以某种有效的方式出现在节点内,所以我不想将它们全部删除。 ..
这根本就是无效的。预处理是你最好的选择,也许使用正则表达式 - 类似:
string output = Regex.Replace(input, @"(<\w+)\((\w+)\)([ >/])", "$1$2$3");
编辑:替换括号内的“-”有点复杂:
string output = Regex.Replace(input, @"(<\w+)\(([-\w]+)\)([ >/])",
delegate(Match match) {
return match.Groups[1].Value + match.Groups[2].Value.Replace('-', '_')
+ match.Groups[3].Value;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)