1

我想读取一个 XML 文件并匹配标签</contrib-group>并在这个标签之后写一个字符串

string Final = File.ReadAllText(Npath);
string Oxml = path + "\\" + Oword + ".abs.xml";
if (File.Exists(Oxml))
{
    StreamReader xml = new StreamReader(Oxml,Encoding.UTF8);
    string xmltag = xml.ReadToEnd();
    //File.OpenWrite(Oxml);
    xml.Close();
    StreamWriter write = new StreamWriter(Oxml, true, Encoding.UTF8);
    Match tag = Regex.Match(xmltag, @"</contrib-group>");
    if (tag.Success == true)
    {
        write.WriteLine(Environment.NewLine);
        write.Write(Final);

    }
}

所以我需要将字符串写入匹配的 XML 标记后Final调用的 XML 文件Oxml</contrib-group>

4

1 回答 1

0

如果您愿意将新内容保存为可以使用的有效 XML 文件,您应该使用 XML 类来实现该方法,这应该如下所示(未经测试):

XmlDocument doc = new XmlDocument();
doc.Load("YourFile.xml");
XmlElement root = doc.DocumentElement;
XmlNodeList elemList = root.GetElementsByTagName("contrib-group");
for (int i=0; i < elemList.Count; i++)
{       
    XmlNode xnode = elemList[i];
    XmlNode xnodeParent = xnode.ParentNode;
    XMLNode newNode = doc.CreateNode(XmlNodeType.Element, "NodeName", "");
    newNode.InnerText = "ContentInsideTheNode";
    xnodeParent.InsertAfter(newNode, xnode);
}
doc.Save("YourFile.xml");

如果您只需要将字符串替换为其他目的,而不是将其保存在不存在有效 XML 的地方,您可以将其作为字符串处理并使用String.Replace (String, String)方法

string searchedTag = @"</contrib-group>";    
string tagAndNewContent = @"</contrib-group>" + newContent;
string fileContentString = File.ReadAllText("YourFile.xml");    
string ouput = fileContentString.Replace(searchedTag, tagAndNewContent);
于 2013-04-04T07:56:36.260 回答