簡體   English   中英

在XML / XSLT中轉義美元符號

[英]Escaping dollar sign in XML/XSLT

我正在處理使用XSLT轉換XML(來自舊版系統)的要求。 我在處理帶有美元符號的標簽時遇到了問題(這就是它們在舊版系統中的存儲和生成方式)。 XML示例文件示例:

<root>
     <example>
        <problem$tag>12354</problem$tag>                
    </example>
    <thisTagIsOK>sunny day</thisTagIsOK>
</root>

這是我的xslt:

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="example">
    <xsl:apply-templates select="problem$tag>"/>
        print stuff
</xsl:template>
</xsl:stylesheet>

我試圖用\\和$來使美元逃脫,但兩者都沒有運氣。

有人可以幫我弄這個嗎? 謝謝

不幸的是,您將無法像使用XSLT那樣進行解析,因為XML規范禁止在元素名稱中使用$符號(以及許多其他符號)。 根據XML規范

名稱中排除了ASCII符號和標點符號以及相當大的一組Unicode符號字符,因為它們在XML名稱在XML文檔之外使用的上下文中作為定界符更有用

我會說您可以選擇以下兩種方法之一:

  1. 修改源系統(如果可能)以生成兼容的XML
  2. 通過某種方式運行XML以預處理XML以使其符合標准,例如用_替換$符號(允許)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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