从正则表达式匹配生成XML

时间:2014-02-27 13:16:09

标签: c# xml regex string pattern-matching

我想阅读像 @ type / param 这样的正则表达式匹配项,并从匹配项生成xml文件,如下所示:< type name =“param”> dummy# < / type> ,#符号是一个受限制的值,编码它的最佳方法是什么?

类型& param 是可变的字母数字值

1 个答案:

答案 0 :(得分:1)

好的,首先让您的匹配为MatchCollection

MatchCollection matches = Regex.Matches(someInput,@"<your regex>",RegOptions.IgnoreCase);

然后创建一个文件和XML编写器,迭代匹配并生成XML:

using (FileStream file = new FileStream("output.xml",FileMode.Create,FileAccess.Write,FileShare.None)) {

    XmlTextWriter xml = new XmlTextWriter(file);

    xml.WriteStartDocument();
    xml.WriteStartElement("Types");

    foreach(Match match in matches) {
        string type = match.Groups[1].Value;
        string param = match.Groups[2].Value;

        xml.WriteStartElement(type);
        xml.WriteAttributeString("name",param);
        xml.WriteEndElement();
    }

    xml.WriteEndElement();
    xml.WriteEndDocument();
    xml.Flush();

}

我正在做一些假设,比如你的类型/参数是正则表达式中的捕获组。

应该给你:

<Types>
    <*Type* name="param" />
</Types>