Я бы попытался преобразовать XML-файл в CSV, и мне нужна помощь по следующей ссылке , но я столкнулся с тем, что мне нужно извлечь значение из двух разных тегов, существующих в одном и том жеуровень.Из первого тега я должен выбрать значение, а из следующего тега - значения его дочерних и дочерних тегов.Чтобы выбрать значения из второго тега, я использую итератор и, наконец, мне нужно опубликовать вывод в той же строке, но я не знаю, как выбрать значения из первого тега, а также из второго тега и объединить значенияпервый тег со значениями из второго тега.Для большей ясности я приложил следующий пример вывода:
Мой пример входного XML выглядит следующим образом:
<PayLocation>
<LocationCode>VNS</LocationCode>
<LocationDescription>VARANASI</LocationDescription>
<PayrunDetails>
<PayrunNumber>000428</PayrunNumber>
</PayrunDetails>
<CompanyDetails>
<CompanyCode>Stack99</CompanyCode>
<CompanyName>StackOverFlow</CompanyName>
<Payslip>
<StaffNumber>123456</StaffNumber>
<StaffName>ALIBABA</StaffName>
<PayDetails>
<AmountNet>2100</AmountNet>
<ComponentDetails>
<ComponentType>SALARY</ComponentType>
<Code>SAL</Code>
</ComponentDetails>
</PayDetails>
<LeaveTaken>
<Description>LEAVE</Description>
<StartDate/>
<EndDate/>
</LeaveTaken>
</Payslip>
<Payslip>
<StaffNumber>456789</StaffNumber>
<StaffName>AMAZON</StaffName>
<PayDetails>
<AmountNet>2200</AmountNet>
<ComponentDetails>
<ComponentType>SALARY</ComponentType>
<Code>SAL</Code>
</ComponentDetails>
</PayDetails>
<LeaveTaken>
<Description>LEAVE</Description>
<StartDate>2015-05-28</StartDate>
<EndDate>2015-05-31</EndDate>
</LeaveTaken>
</Payslip>
</CompanyDetails>
</PayLocation>
Мой ожидаемый пример вывода следующий:
Вышеприведенный вывод содержит значения первого столбца, полученные из первого тега, и остальные значения, полученные из второго тега и его дочерних тегов.
Я также делюсь своим XSL-файлом:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" >
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/">
StaffNumber,Payslip
<xsl:for-each select="//PayLocation/CompanyDetails/Payslip">
<xsl:value-of select="concat(StaffNumber,',',PayDetails/AmountNet,'
')"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Обратите внимание, что я не упомянул PayNumber, CompanyCode, CompanyName в вышеуказанном XSL-файле, потому что я незнать, как выбрать значения первого тега вместе со вторым тегом.Я довольно новичок в XSLT, поэтому прошу прощения за потенциальный вопрос новичка.Любое руководство будет оценено здесь.Заранее спасибо.