2009-12-28 105 views
0

我想我失去了一些東西,當談到命名空間和XML,我試圖用XSLTXSLT轉換,我想我失去了一些東西

輸入

<?xml version="1.0" encoding="utf-8"?> 
<MySomeObject xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
<_x003C_Name_x003E_k__BackingField>Jon</_x003C_Name_x003E_k__BackingField> 
    <_x003C_Id_x003E_k__BackingField i:nil="true" /> 
</MySomeObject> 
轉換XML

XSLT

<?xml version="1.0" encoding="us-ascii"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
    <xsl:template match="/">    
Name: <xsl:value-of select="MySomeObject/_x003C_Name_x003E_k__BackingField"/> 
    </xsl:template> 
</xsl:stylesheet> 

給我的預期輸出Name: Jon

然而

輸入:

<?xml version="1.0" encoding="utf-8"?> 
<MySomeObject xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://schemas.datacontract.org/2004/07/My.Object.Name.Space"> 
<_x003C_Name_x003E_k__BackingField>Jon</_x003C_Name_x003E_k__BackingField> 
    <_x003C_Id_x003E_k__BackingField i:nil="true" /> 
</MySomeObject> 

XSLT:

<?xml version="1.0" encoding="us-ascii"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://schemas.datacontract.org/2004/07/My.Object.Name.Space"> 
    <xsl:template match="/">    
Name: <xsl:value-of select="MySomeObject/_x003C_Name_x003E_k__BackingField"/> 
    </xsl:template> 
</xsl:stylesheet> 

不給我相同的輸出,它只返回Name:

回答

4

試試這個:

<?xml version="1.0" encoding="us-ascii"?> 
<xsl:stylesheet version="1.0" 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:other="http://schemas.datacontract.org/2004/07/My.Object.Name.Space"> 
    <xsl:template match="/">    
    Name: 
    <xsl:value-of 
     select="other:MySomeObject/other:_x003C_Name_x003E_k__BackingField"/> 
    </xsl:template> 
</xsl:stylesheet> 
+0

這工作,我沒有意識到你簡短編輯後的模式值:other –

相關問題