-1

我在以我正在寻找的格式保存 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");

我期待的结果是

<rootNode>
    <LinkName>MyChildData</LinkName>
</rootNode>

但我得到的结果是

<rootNode>
    <LinkName/> 
    <nothing>MyChildData</nothing>
</rootNode>

任何建议将不胜感激谢谢

4

2 回答 2

1

您正在将节点添加到 xml,而不是<LinkName>. 抬头AddChild()

于 2013-03-20T16:45:17.683 回答
0

问题在于正则表达式,当我运行当前字符串时,我得到两个不同的匹配集。一种名称为 LinkName,但 namex 为空,另一种名称为空,但 namex 正确。

尝试使用此正则表达式:

(?<name>(?<=<!).*?)>(?<namex>.*?(?=<#))

请注意如何不使用选项,|字符,而是将两者链接在一起,忽略>字符。这样就保证了结构必须是name>value.

如果你不能保证这种结构,那么你需要重新考虑整个过程。

于 2013-03-20T16:51:15.907 回答