C# 用xml标记包装文本的最佳方式是什么?
我试图在C#中使用正则表达式匹配xml文档中的一个节,并将该节包装在标记中 例如,我有以下部分:C# 用xml标记包装文本的最佳方式是什么?,c#,.net,xml,C#,.net,Xml,我试图在C#中使用正则表达式匹配xml文档中的一个节,并将该节包装在标记中 例如,我有以下部分: <intro> <p>this is the first section of content</p> <p> this is another</p> </intro> 谢谢 我建议使用System.XML和XPath——我不认为XML被认为是一种类似于HTML的常规语言,在试图用正则表达式解析XML时会出现问
<intro>
<p>this is the first section of content</p>
<p> this is another</p>
</intro>
谢谢 我建议使用System.XML和XPath——我不认为XML被认为是一种类似于HTML的常规语言,在试图用正则表达式解析XML时会出现问题 使用类似
XMLDocument doc = new XMLDocument();
doc.Load("Path to your xml document");
享受吧 我不建议将正则表达式用于此任务。相反,您可以使用LINQ到XML来实现。例如,以下是如何将一些标记包装到新标记中:
XDocument doc = XDocument.Load("input.xml");
var section = doc.Root.Elements("p");
doc.Root.ReplaceAll(new XElement("bodyText", section));
Console.WriteLine(doc.ToString());
结果:
<intro>
<bodyText>
<p>this is the first section of content</p>
<p> this is another</p>
</bodyText>
</intro>
这是内容的第一部分
这是另一个问题
我假设您的实际文档与您发布的示例有很大差异,因此代码需要进行一些调整以满足您的要求,但是,如果您阅读了文档,您应该能够做您想做的事情。强制性链接:似乎您可能需要XSLT。您使用的是.NET的哪个版本?我使用3.5,我使用XSLT做一些事情,我可能会用它来做这件事,我只是希望找到一个快速的C#解决方案,这样我就可以花更多的时间用XSLT而不是组织代码来编写表示代码。虽然我同意这种方法,但我认为这些代码实际上并不能满足OP的要求。@hemp:是的,我并不是说他可以盲目地复制并粘贴这些代码到他的项目中,他的所有问题都会得到解决,但希望这足够作为一个开始的提示。我再次阅读并亲自尝试了,我错了-你的代码完全符合他的要求。很抱歉
XDocument doc = XDocument.Load("input.xml");
var section = doc.Root.Elements("p");
doc.Root.ReplaceAll(new XElement("bodyText", section));
Console.WriteLine(doc.ToString());
<intro>
<bodyText>
<p>this is the first section of content</p>
<p> this is another</p>
</bodyText>
</intro>