我的XML檔案中的一些值在轉換時沒有顯示出來。看來XSL命名空間有些不對勁,但我想不出來。
要轉換的XML檔案
XSL檔案
<?xml version="1.0" encoding="utf-8"?>
<xsl:styleheet version="2.0"/span>
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/span>
xmlns:ns2="urn://x-artefacts-zags-rogdinf/root/112-51/4.0.1"
xmlns="urn://x-artefacts-zags-rogdinf/types/4.0.1">/span>
<xsl:output method="html"/span>/>
<xsl:template match="/">/span>
<HTML>
<BODY>
<H2>Birth data</H2>
<span>/span>序列號。<b>序列號: <b>
<xsl:apply-templates select="//ns2。 ROGDINFResponse/ns2:ZgsAnswer/ns2:BrthReg/ns2:BrthLcs/SerLcs"/span>/>
</b>/span>
</span>
<p>/span>
<span>號碼。<b>號碼:<b>
<xsl:apply-templates select="//ns2。 ROGDINFResponse/ns2:ZgsAnswer/ns2:BrthReg/ns2:BrthLcs/NumLcs"/span>/>
</b>/span>
</span>
</p>/span>
<p>
<span>/span>日期。<b>日期
<xsl:apply-templates select="//ns2: ROGDINFResponse/ns2:ZgsAnswer/ns2:BrthReg/ns2:BrthLcs/DateLcs"/>/span>
</b>/span>
</span>
</p>/span>
<H3>額外的資料。</H3>附加資料:</H3>
<span>最后一位,第一位,中間。
<b>最后,第一,中間:<b>
<xsl:apply-templates select="//ns2。 ROGDINFResponse/ns2:ZgsAnswer/ns2:BrthReg/ns2:SvReg/ns2:SvRodiv/ns2:FIOrogd/Last"/>
</b>/span>
<b>/span>
<xsl:apply-templates select="//ns2: ROGDINFResponse/ns2:ZgsAnswer/ns2:BrthReg/ns2:SvReg/ns2:SvRodiv/ns2:FIOrogd/First"/>/span>
</b>/span>
<b>/span>
<xsl:apply-templates select="//ns2: ROGDINFResponse/ns2:ZgsAnswer/ns2:BrthReg/ns2:SvReg/ns2:SvRodiv/ns2:FIOrogd/Middle"/span>/>
</b>/span>
</span>
<p>/span>
<span>/span>日期。<b>日期
<xsl:apply-templates select="//ns2: ROGDINFResponse/ns2:ZgsAnswer/ns2:BrthReg/ns2:SvReg/ns2:SvRodiv/ns2:BirthDate"/>/span>
</b>/span>
</span>
</p>/span>
<p>
<span>地點。<b>Place.
<xsl:apply-templates select="//ns2。 ROGDINFResponse/ns2:ZgsAnswer/ns2:BrthReg/ns2:SvReg/ns2:SvRodiv/ns2:BirthPlace/@Place"/>/span>
</b>/span>
</span>
</p>/span>
</BODY>
</HTML>
</xsl:template>
</xsl:styleheet>/span>
我的XML的一些值顯示得很好,但沒有命名空間的欄位的值卻不能顯示(SerLcs, NumLcs, DateLcs, Last, First, Middle)。 我怎樣才能修復我的XSL呢?
uj5u.com熱心網友回復:
在XSLT中不要使用xmlns="urn://x-artefacts-zags-rogdinf/types/4.0.1",而要使用xpath-default-namespace="urn://x-artefacts-zags-rogdinf/types/4.0.1"。注意,這只適用于XSLT 2和3處理器,如Saxon 9或10、Saxon-JS 2、XmlPrime、Exselt、AltovaXML。
uj5u.com熱心網友回復:
First、Last和Middle確實有一個命名空間:它們在命名空間urn://x-artefacts-zags-rogdinf/types/4.0.1。在XPath中,默認情況下,一個沒有前綴的名字指的是一個沒有命名空間的元素。你可以使用xpath-default-namespace來改變這一點,正如@MartinHonnen所建議的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/324058.html
標籤:
