C# 如何删除开始/结束元素

C# 如何删除开始/结束元素,c#,.net,xml,openxml,xmlwriter,C#,.net,Xml,Openxml,Xmlwriter,我对c语言中的sgmlReading/XmlWriting表示怀疑,我正在编写startElement,EndElement,其中很少有基于条件的 如果我不想写特定的标签,但我需要内部XML,如何删除标签?请帮助解决这个问题 这是我的XML示例: <BODY> <p><l>bla bla</li></p> <h1><p2>bla bla</p2></h1> <

我对c语言中的sgmlReading/XmlWriting表示怀疑,我正在编写startElement,EndElement,其中很少有基于条件的

如果我不想写特定的标签,但我需要内部XML,如何删除标签?请帮助解决这个问题

这是我的XML示例:

<BODY>
    <p><l>bla bla</li></p>
    <h1><p2>bla bla</p2></h1>
    <xyz>bla bla<p3>bla bla</p3>bla bla</xyz>
    <abc><p3>bla bla</p3></abc>
</BODY>

如果我理解正确,您希望从xml中删除所有元素,留下html

您可以使用正则表达式来实现相同的目标

样品

void test()
{

    string result = Regex.Replace(xmlString, @"</*(?<tag>.*?)>", MyMatchEvaluator);
}

private string MyMatchEvaluator(Match m)
{
    string tag = m.Groups["tag"].Value;
    string result = m.Value;
    switch (tag)
    {
        case "xyz":
        case "abc":
            result = string.Empty;
            break;
            //more cases if needed
    }
    return result;
}
结果

<BODY>
    <p><l>bla bla</li></p>
    <h1><p2>bla bla</p2></h1>
    bla bla<p3>bla bla</p3>bla bla
    <p3>bla bla</p3>
</BODY>
布拉布拉

布拉布拉 呜呜呜呜呜呜呜呜呜呜 如果不想看到,请将以下OVERRIDE添加到writer类

        public override void WriteStartDocument()
        {
            //skip <?xml version="1.0" ... >
        }

你能把你的XML文件放在哪里吗?你真的很难理解你想要完成什么。请提供一个您想要生成的示例。K.B和Jim Mischel,我修改了我的问题,请帮助我解决这个问题。感谢Purshraj的快速回复,目前,我正在以同样的方式进行操作,我不想使用正则表达式替换方法,我想使用xmlwriter methodOK,让我试着为您带来xml编写器方法。只是检查一下,更新后的答案是否是您想要的?
        public override void WriteStartDocument()
        {
            //skip <?xml version="1.0" ... >
        }