Я новичок в xslt, и единственный способ показать все дочерние узлы — это сделать для каждого в начале xslt. Однако сейчас родители без детей пропали. Обратите внимание, что xml должен быть плоским csv и работает нормально, за исключением пропуска родителей, где отсутствует узел «».
xlst:
<wd:Report_Data xmlns:wd="urn:com.workday.report/Report">
<wd:Report_Entry>
<wd:Employee_ID>100099999</wd:Employee_ID>
<wd:ADDRESS>Any Street</wd:ADDRESS>
<wd:CITY>Any City</wd:CITY>
<wd:PTIN>45-9999999</wd:PTIN>
<wd:Part_3_-_Employer_provided_self-insured_coverage>1</wd:Part_3_-_Employer_provided_self-insured_coverage>
<wd:Part_3_-_Covered_Individuals>
<wd:NAME>Jane</wd:NAME>
<wd:NAME2>Doe</wd:NAME2>
<wd:TIN>999999998</wd:TIN>
</wd:Part_3_-_Covered_Individuals>
<wd:Part_3_-_Covered_Individuals>
<wd:Covered_Individual_Name>Jaelyn Polanco</wd:Covered_Individual_Name>
<wd:NAME>Jean</wd:NAME>
<wd:NAME2>Doe</wd:NAME2>
<wd:TIN>999999999</wd:TIN>
</wd:Part_3_-_Covered_Individuals>
</wd:Report_Entry>
<wd:Report_Entry>
<wd:Employee_ID>100099998</wd:Employee_ID>
<wd:ADDRESS>Any Street</wd:ADDRESS>
<wd:CITY>Any City</wd:CITY>
<wd:PTIN>45-9999999</wd:PTIN>
<wd:Part_3_-_Employer_provided_self-insured_coverage>0</wd:Part_3_-_Employer_provided_self-insured_coverage>
</wd:Report_Entry>
</wd:Report_Data>
XSLT:
<xsl:for-each select="wd:Report_Data/wd:Report_Entry/wd:Part_3_-_Covered_Individuals">
<xsl:choose>
<xsl:when test="../wd:Part_3_-_Employer_provided_self-insured_coverage !=1 " >
<xsl:value-of select="$quote" /><xsl:value-of select="../wd:PTIN"/><xsl:value-of select="$quote" /><xsl:value-of select="$delimiter" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$quote" /><xsl:value-of select="../wd:PTIN"/><xsl:value-of select="$quote" /><xsl:value-of select="$delimiter" />
</xsl:otherwise>
</xsl:choose>
<!-- <xsl:value-of select="$quote" /><xsl:value-of select="../wd:PTIN"/><xsl:value-of select="$quote" /><xsl:value-of select="$delimiter" />-->
<xsl:choose>
<xsl:when test="../wd:EE_SSN=wd:TIN" >
<xsl:value-of select="$quote" /> <xsl:text>S</xsl:text><xsl:value-of select="$quote" /><xsl:value-of select="$delimiter" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$quote" /><xsl:text>D</xsl:text><xsl:value-of select="$quote" /><xsl:value-of select="$delimiter" />
</xsl:otherwise>