用Foreach c#所期望的格式保存XML时遇到麻烦
本文关键字:XML 保存 遇到 麻烦 格式 Foreach 期望 | 更新日期: 2023-09-27 18:05:10
我有一个问题,以我正在寻找的格式保存XML文件也许有人可以帮助我这里是我的代码
string testInput= @"<!LinkName>MyChildData<#";
var testRegex = new Regex(@"(?<name>(?<=<!).*?(?=>))|(?<namex>(?<=>).*?(?=<#))",
RegexOptions.Multiline | RegexOptions.Singleline);
foreach (Match myMatch in testRegex.Matches(testInput))
{
xml.NewChild2(myMatch.Groups["name"].Value, myMatch.Groups["namex"].Value);
}
xml.SaveXml("simple.xml");
Result I 'm expected
<rootNode>
<LinkName>MyChildData</LinkName>
</rootNode>
但是结果是
<rootNode>
<LinkName/>
<nothing>MyChildData</nothing>
</rootNode>
任何建议将不胜感激由于
将节点添加到xml中,而不是添加到<LinkName>
中。查找AddChild()
问题在于正则表达式,当我运行当前字符串时,我得到两个不同的匹配集。一种是Name为LinkName,但namex为空,另一种是Name为空,但namex是正确的。
尝试使用这个正则表达式:
(?<name>(?<=<!).*?)>(?<namex>.*?(?=<#))
请注意,我没有使用选项,而是使用|
字符,而是将两者连接在一起,忽略了>
字符。这样就保证了结构体必须是name>value
。
如果你不能保证这种结构,那么你需要重新考虑整个过程。