2017-11-07 19 views
0

の間に文字を入れてください:しかし、私は間にスペースを配置する必要があり私は含むこのXMLファイル持っている文字列

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet exclude-result-prefixes="wd" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" 
xmlns:wd="urn:com.workday.report/INT005_"> 

<xsl:output indent="yes" method="xml" /> 
<xsl:strip-space elements="*" /> 

<xsl:template match="wd:Report_Data"> 
    <wd:Report_Data> 
     <xsl:for-each select="wd:Report_Entry"> 
     <wd:Report_Entry> 
     <wd:PERNR><xsl:value-of select="wd:PERNR"/></wd:PERNR> 
     <wd:HR_BUSINESS_PART> 
     <xsl:apply-templates select="wd:HR_PARTNER/*"/> 
     </wd:HR_BUSINESS_PART> 
     </wd:Report_Entry> 
     </xsl:for-each> 
    </wd:Report_Data> 
</xsl:template> 

<xsl:template match="wd:HR_PARTNER"> 
    <xsl:apply-templates select="ancestor::wd:Report_Entry"> 
     <xsl:with-param name="HRBP" select="current()" /> 
    </xsl:apply-templates> 
</xsl:template> 

<xsl:template match="/wd:HR_PARTNER"> 
    <xsl:param name="HRBP"/> 
    <wd:HR_BUSINESS_PART> 
     <xsl:value-of select="$HRBP"/> 
    </wd:HR_BUSINESS_PART> 
</xsl:template> 
</xsl:stylesheet> 

これは、作品は罰金だ:

<wd:Report_Data xmlns:wd="urn:com.workday.report/INT005_"> 
<wd:Report_Entry> 
    <wd:PERNR>00000001</wd:PERNR> 
    <wd:HR_PARTNER> 
     <wd:HR_BUSINESS_PART>A</wd:HR_BUSINESS_PART> 
    </wd:HR_PARTNER> 
    <wd:HR_PARTNER> 
     <wd:HR_BUSINESS_PART>B</wd:HR_BUSINESS_PART> 
    </wd:HR_PARTNER> 
</wd:Report_Entry> 
<wd:Report_Entry> 
    <wd:PERNR>00000002</wd:PERNR> 
    <wd:HR_PARTNER> 
     <wd:HR_BUSINESS_PART>C</wd:HR_BUSINESS_PART> 
    </wd:HR_PARTNER> 
    <wd:HR_PARTNER> 
     <wd:HR_BUSINESS_PART>D</wd:HR_BUSINESS_PART> 
    </wd:HR_PARTNER> 
    <wd:HR_PARTNER> 
     <wd:HR_BUSINESS_PART>E</wd:HR_BUSINESS_PART> 
    </wd:HR_PARTNER> 
</wd:Report_Entry> 
</wd:Report_Data> 

そして、私はXSLTコードを使用していますがwd:HR_BUSINESS_PARTの値。私はコーディングにはあまりよくないので、ここで使う他の方法についてはわかりません。誰かが私の最終的な出力がこのように見えるように私はそれを行うことができます知っていますか?

<?xml version="1.0" encoding="UTF-8"?> 
<wd:Report_Data xmlns:wd="urn:com.workday.report/INT005_"> 
    <wd:Report_Entry> 
    <wd:PERNR>00000001</wd:PERNR> 
    <wd:HR_BUSINESS_PART>A B</wd:HR_BUSINESS_PART> 
    </wd:Report_Entry> 
    <wd:Report_Entry> 
    <wd:PERNR>00000002</wd:PERNR> 
    <wd:HR_BUSINESS_PART>C D E</wd:HR_BUSINESS_PART> 
    </wd:Report_Entry> 
</wd:Report_Data> 

答えて

2

代わりの

<wd:HR_BUSINESS_PART> 
    <xsl:apply-templates select="wd:HR_PARTNER/*"/> 
    </wd:HR_BUSINESS_PART> 

単にスペースが区切り文字である

<wd:HR_BUSINESS_PART> 
    <xsl:value-of select="wd:HR_PARTNER/wd:HR_BUSINESS_PART" separator=" "/> 
    </wd:HR_BUSINESS_PART> 

を使うselect属性(https://www.w3.org/TR/xslt20/#value-of)とvalue-ofのためにもデフォルトであるので、あなたは、単に

を使用することができます
<wd:HR_BUSINESS_PART> 
    <xsl:value-of select="wd:HR_PARTNER/wd:HR_BUSINESS_PART"/> 
    </wd:HR_BUSINESS_PART> 
関連する問題