[英]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.