簡體   English   中英

Javascript 中的字符轉義

[英]Character escape in Javascript

我在 javascript 中有一個字符串,它對應於一個 xml,當將它分配為屬性值時,它會用&quot;轉義我的引號。 ,但我還需要它來逃避“<”和“>”標志,這是不做的。

這是 xml 的示例:

<row row="0" XMLContent="<?xml version='1.0' encoding='UTF-8'>"></row>

我決定用替換來做到這一點:

value.replaceAll("<", "&lt;").replaceAll(">", "&gt;");
m_row.attributes.getNamedItemNS(null, name).value = value;

但是通過這樣做,您可以像這樣分配它:

<row row="0" XMLContent="&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; &amp;gt;"></row>

用於轉義“<”和“>”的代碼與符號也被轉義,使其看起來像這樣:

"&lt;" "&lt;" "&gt;"也一樣因此,當我獲取該屬性的值並嘗試將其解析為 XML 時,它給了我一個錯誤,因為它無法解釋。

我將不勝感激。

這種情況你可以使用 &lt 和 &gt

<row row="0" XMLContent="&lt?xml version='1.0' encoding='UTF-8'&gt"></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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM