我試圖建立的情況下,可能會發生一個XML格式的正則表達式包括XML中的正則表達式?
我知道,XML解析器會抱怨幾個鍵值(即<和&),並從我個人理解,屬性可以不支持CDATA標籤。
但是,由於在.net中,lookbehind使用了<這個字符,所以事情變得更加困難。
處理這個問題的最佳方法是什麼? 我曾考慮將這些格式設置爲首先使用的html格式,並在使用時對它們進行解碼。似乎它會工作,但希望有更聰明的事情。
除了格式化爲html然後解碼之外,還有更多巧妙的方法嗎?
我試圖建立的情況下,可能會發生一個XML格式的正則表達式包括XML中的正則表達式?
我知道,XML解析器會抱怨幾個鍵值(即<和&),並從我個人理解,屬性可以不支持CDATA標籤。
但是,由於在.net中,lookbehind使用了<這個字符,所以事情變得更加困難。
處理這個問題的最佳方法是什麼? 我曾考慮將這些格式設置爲首先使用的html格式,並在使用時對它們進行解碼。似乎它會工作,但希望有更聰明的事情。
除了格式化爲html然後解碼之外,還有更多巧妙的方法嗎?
爲什麼不把它們放在元素中?要麼正確編碼它們,要麼將它們放入CDATA標籤中。如果您使用任何.NET XML API而不是字符串操作,那麼.NET將爲您執行編碼。
「將它們格式化爲HTML」不是你所要做的。作爲XML要求你會被引用的字符:「* < &無所謂」
<something regex=".*<&whatever">...</something>
當您解析這與XML解析器,正則表達式屬性會回來的,你不需要做任何解碼。 XML解析器知道如何處理這些實體。
當然,這可能是混合正則表達式和XML,並有一個可讀的結果無論如何是一個挑戰......
的System.Web.HttpUtility.HtmlAttributeEncode()
功能就可以了你,如果使用的元素或CDATA是不是一種選擇。
我心CDATA爲此標籤。保持XML清晰。 – 2010-08-02 19:32:50