2014-02-12 160 views
-1

下面是我的XML輸入屬性問題

  <ServiceIncident xmlns="http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2"> 
      <ServiceProvider> 
       <Person Role="AffectedUser"> 
       <ContactID>ITELLA_BRIDGE_USER</ContactID> 
       <FullName>Chad Whaley</FullName> 
       </Person> 
      </ServiceProvider> 

在人稱角色輸出我需要得到角色到位AffectedUser在上面的代碼的作用是person.Below的屬性我的XSLT

xmlns:r2="http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2"> 
     <xsl:output method="xml" indent="yes"/> 
    <xsl:template match="node()|@*"> 
    <xsl:copy> 
     <xsl:apply-templates select="node()|@*"/>   
    </xsl:copy> 
    </xsl:template> 
    <xsl:template match="r2:[email protected]"> 
    <xsl:copy>Owner</xsl:copy> 
</xsl:template> 
</xsl:stylesheet> 
+0

看來你問是一個很基本的問題。根據你的示例XSLT,你似乎還沒有掌握基本的語法。先嚐試學習基礎知識。 –

+0

「*在人物角色的輸出中,我需要在上面的代碼中獲取角色來代替AffectedUser角色是人物的屬性。*」您能否重新解釋這個問題?我不確定你的意思。顯示所需的輸出也可能有幫助。另請注意,您的輸入XML缺少結尾部分,而您的XSLT缺少起始部分。 –

回答

0

您的輸入是無效的XML。希望你有有效的XML。我假設:

<ServiceIncident xmlns="http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2"> 
    <ServiceProvider> 
    <Person Role="AffectedUser"> 
     <ContactID>ITELLA_BRIDGE_USER</ContactID> 
     <FullName>Chad Whaley</FullName> 
    </Person> 
    </ServiceProvider> 
</ServiceIncident> 

您的XSLT也不是XSLT,缺少開始。我假設它在某處開始於<xsl:stylesheet

在所有的assumtions,XSLT轉換給了我一個相當明確的錯誤消息:

'r2:[email protected]' is an invalid XPath expression. 

這可以被固定在r2:Person/@Role

接下來,<xsl:copy>不適合你。也許你想

<xsl:attribute name="Role">Owner</xsl:attribute> 

所以最後我們

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xml:space="default" exclude-result-prefixes="" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:r2="http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2"> 
    <xsl:output method="xml" indent="yes" /> 
    <xsl:template match="node()|@*"> 
    <xsl:copy> 
     <xsl:apply-templates select="node()|@*" /> 
    </xsl:copy> 
    </xsl:template> 
    <xsl:template match="r2:Person/@Role"> 
    <xsl:attribute name="Role">Owner</xsl:attribute> 
    </xsl:template> 
</xsl:stylesheet> 
+0

其工作gr8> – user3085529