加载特定目录的多个文件,并在所有文件中查找和替换功能

时间:2012-02-07 10:47:15

标签: c# xml winforms

我正在尝试开发一个项目,我正在执行一系列流程。我想从目录中加载特定类型的所有文件(* .xhtml)。文件应在选项卡中打开。我想搜索特定标记,并替换为查找和替换功能的所有文件中的另一个标记。如何适应这一点。

2 个答案:

答案 0 :(得分:2)

那么问题是什么?

  1. 搜索文件:

    var files = DirectoryInfo.GetFiles("*.xhtml", SearchOption.AllDirectories)

  2. 加载标签。在Windows窗体中不是一个很大的专业版,但我认为这类似于为每个找到的文件添加一些标签容器的新标签控件。

  3. 见Oybek关于最后一点的答案!

  4. 希望它有所帮助。

答案 1 :(得分:1)

就IO而言,它非常简单,读取目录,迭代文件和读取内容。

以下代码段取代了xml的节点。

var data = @"<foo>
    <items>
        <itemToReplace>
            <itemContent />
        </itemToReplace>
    </items>
</foo>";
        // Load your document
        var doc = XDocument.Parse(data);
        // Get the root
        var root = doc.Element("items");
        // Get all tags that you want to replace
        var repls = doc.Descendants("itemToReplace").ToList();
        // Iterate over
        foreach (var item in repls) {
            // prepare a new element as a replacement for your target.
            // Content will be the same as the content of the element being replaced.
            var newElement = new XElement("newElement", item.DescendantNodes());
            // add the element right after the tag to be replaced
            item.AddAfterSelf(newElement);
            // finally remove the tag.
            item.Remove();
        }
        MessageBox.Show(doc.ToString());

itemToReplace已被newElement取代。正如你所说的XHTML,我认为有一种形式良好的XML / HTML可以通过linq2xml进行解析。欢呼声。