[英]Character escape in Javascript
我在 javascript 中有一個字符串,它對應於一個 xml,當將它分配為屬性值時,它會用"
轉義我的引號。 ,但我還需要它來逃避“<”和“>”標志,這是不做的。
這是 xml 的示例:
<row row="0" XMLContent="<?xml version='1.0' encoding='UTF-8'>"></row>
我決定用替換來做到這一點:
value.replaceAll("<", "<").replaceAll(">", ">");
m_row.attributes.getNamedItemNS(null, name).value = value;
但是通過這樣做,您可以像這樣分配它:
<row row="0" XMLContent="&lt;?xml version="1.0" encoding="UTF-8" &gt;"></row>
用於轉義“<”和“>”的代碼與符號也被轉義,使其看起來像這樣:
從"<"
到"<"
">"
也一樣因此,當我獲取該屬性的值並嘗試將其解析為 XML 時,它給了我一個錯誤,因為它無法解釋。
我將不勝感激。
這種情況你可以使用 < 和 >
<row row="0" XMLContent="<?xml version='1.0' encoding='UTF-8'>"></row>
如果您使用 DOM 讀取/寫入 XML,則不需要替換。 串行器將負責 escaping。
您的替換將導致<
和>
的雙 escaping 。
const xmlDocument = (new DOMParser()).parseFromString( '<row row="0" XMLContent=""/>', 'text/xml' ); const row = xmlDocument.documentElement; row.setAttributeNS(null, "XMLContent", "<?xml version='1.0' encoding='UTF-8'?><demo/>"); const xmlString = (new XMLSerializer()).serializeToString(xmlDocument); console.log(xmlString);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.