C# 正则表达式将“仅当它不在另一个中时”替换为“仅当它不在另一个中时”

C# 正则表达式将“仅当它不在另一个中时”替换为“仅当它不在另一个中时”,c#,regex,xml,C#,Regex,Xml,我正在转换为它的原始格式 string myXml = oldXml.Replace("&lt;", "<").Replace("&amp;", "&") .Replace("&gt;", ">") .Replace("&quot;", "\"

我正在转换为它的原始格式

string myXml = oldXml.Replace("&lt;", "<").Replace("&amp;", "&")
                                                   .Replace("&gt;", ">")
                                                   .Replace("&quot;", "\"")
                                                   .Replace("&apos;", "'");
编码XML

替换后恢复的XML

正如你所看到的,内部不应该被转换成。那么我如何用正则表达式替换它,使它不会替换内部呢


谢谢

原来我不需要恢复编码的XML

由于nodeElement.SetAttributemyXmlAttribute,myXml;首先对原始Xml进行编码,因此当我读取属性值并将其分配给字符串时,C将自动恢复原始Xml

string content = theNode.Attributes["myXmlAttribute"].Value;

我不需要做任何替换。

首先是什么编码的?如果可能的话,我会在源代码处解决这个问题。如果它编码了&to&;,那就好了。事实上,它没有这样做,这表明编码部分总体上坏得很厉害…@JonSkeet.Net在我输入时会自动执行,我希望它能正确执行,不是吗hen.请提供一个简短但完整的原因示例。添加到@JonSkeet中,编码的XML应该如下所示:title=a“title”,如果是这样,您的解码器会工作,尽管我会使用一个官方实现…@AlexJolig例如
&lt;v:shape id=&quot;_x0000_i1025&quot; title=&quot;a&quot; title &quot;b&quot;&gt; &lt;/v:shape&gt;
//Note the title value
<v:shape id="_x0000_i1025" title="a" title "b"> </v:shape>
string content = theNode.Attributes["myXmlAttribute"].Value;