簡體   English   中英

XSLT輸出具有不同的名稱空間,但名稱空間前綴與輸入相同

[英]XSLT output has different namespace but same namespace prefix as input

我想將針對架構(2)進行驗證的XML實例轉換為針對舊架構(1)進行驗證的實例。

2個模式使用不同的名稱空間URI,但為這些URI共享相同的元素名稱前綴。

唯一的解決方法是僅在轉換之前更改輸入中使用的名稱空間前綴嗎? 還是可以將其內置到XSLT中?

唯一的解決方法是僅在轉換之前更改輸入中使用的名稱空間前綴嗎?

不,解決方案是為樣式表中的源XML名稱空間使用不同的前綴。 這是一個最小的示例:

XML格式

<abc:root xmlns:abc="www.example.com/source"/>

XSLT 1.0

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:src="www.example.com/source"
xmlns:abc="www.example.com/target"
exclude-result-prefixes="src"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="src:*">
    <xsl:element name="abc:{local-name()}">
        <xsl:apply-templates/>
    </xsl:element>
</xsl:template>

</xsl:stylesheet>  

結果

<?xml version="1.0" encoding="UTF-8"?>
<abc:root xmlns:abc="www.example.com/target"/>

暫無
暫無

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

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