正则表达式替换“quot;与“仅当它不在另一个”中时”

本文关键字:另一个 中时 quot 替换 正则表达式 | 更新日期: 2023-09-27 17:56:10

我正在将编码的XML文档转换为其原始格式

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

它工作正常。但是我想排除&quot;,如果它在另一个&quot;.

例:

原始 XML

//Note the title value
<v:shape id="_x0000_i1025" title="a&quot; title &quot;b"> </v:shape>

编码的 XML

&lt;v:shape id=&quot;_x0000_i1025&quot; title=&quot;a&quot; title &quot;b&quot;&gt; &lt;/v:shape&gt;

替换后恢复的 XML

//Note the title value
<v:shape id="_x0000_i1025" title="a" title "b"> </v:shape>

如您所见,内部&quot;不应转换为"。那么我怎样才能用正则表达式替换它,这样它就不会替换内部&quot;

谢谢

正则表达式替换“quot;与“仅当它不在另一个”中时”

原来

我不需要恢复编码的XML

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

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

我不需要做任何替换。

相关文章: