C# 如何删除开始/结束元素
我对c语言中的sgmlReading/XmlWriting表示怀疑,我正在编写startElement,EndElement,其中很少有基于条件的 如果我不想写特定的标签,但我需要内部XML,如何删除标签?请帮助解决这个问题 这是我的XML示例: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> <
<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" ... >
}