[英]Should RegEx be stored in XML as CDATA or as Attributes?
我試圖在XML文件中將RegEx
作為屬性輸出。
問題在於XML輸出中生成的RegEx與我在數據庫中生成的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})" />
問題在於數據庫中的正則表達式已經在使用XML轉義,並且在將其復制到XML文件時,您已經添加了另一層轉義,因此'
已成為&apos;
。
有兩種轉義特殊字符的方法,您可以將&
變成&
就像這里所做的一樣,也可以將其包裝在CDATA中。 在這種情況下,您既不想執行任何操作,因為它已經被轉義。
我不熟悉link-to-xml,所以我不知道如何在該環境中正確執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.