我正在尝试在xml文件中输出RegEx
作为属性。
问题是XML输出中生成的RegEx与我在Database中生成的RegEx不同:
-- database
[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@([a-z0-9_-]+\.)+(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|[a-z]{2})
-- generated
[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@([a-z0-9_-]+\.)+(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|[a-z]{2})
我应该将RegEx保存为<![CDATA[ regex ]]>
还是这只是xml文件的默认行为(编码某些字符并在我读回时自动解码)?
这是我必须生成元素的代码:
XElement attr =
new XElement("Attribute",
new XAttribute("RegEx", item.RegularExpression)
);
这就是它产生的结果:
<Attribute RegEx="[a-z0-9!#$%&amp;&apos;*+\/=?^_`{|}~-]+(\.[a-z0-9!#$%&amp;&apos;*+\/=?^_`{|}~-]+)*@([a-z0-9_-]+\.)+(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|[a-z]{2})" />
答案 0 :(得分:1)
问题是数据库中的正则表达式已经使用XML转义,并且在将其复制到XML文件时,您添加了另一层转义,因此'
已成为&apos;
。
有两种方法可以转义特殊字符,您可以将此处&
转换为&
,也可以将其包装在CDATA中。在这种情况下,您不想这样做,因为它已经被转义。
我对链接到xml不熟悉所以我不知道如何在该环境中正确地执行此操作。