Я пытаюсь преобразовать XML из одного формата в другой, но мне не очень повезло в поиске ресурсов, объясняющих, как это работает слишком хорошо.Как я могу установить данные внутри тегов XML, используя значение, которое находится внутри других тегов XML?
Вот начальный XML
<?xml version="1.0" encoding="utf-8"?>
<In xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="in.xsd">
<Submit ID="1234">
<Label>
<Code>300</Code>
<Source>27</Source>
</Label>
<Data>
<Number>18</Number>
<Date>2018-04-01</Date>
<IsFile>0</IsFile>
<Location></Location>
<Files>
<File>
<Name>red.pdf</Name>
<Classification>FILE</Classification>
</File>
<File>
<Name>picture.pdf</Name>
<Type>IMAGE</Type>
</File>
</Files>
</Data>
</Submit>
</In>
Мой текущий XSLT
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates select="In"/>
</xsl:template>
<xsl:template match="In">
<Q xmlns:tns="Q" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Source="{@source}" Notification="true">
<xsl:value-of select="Submit/Label/Source"/>
</Q>
</xsl:template>
</xsl:stylesheet>
Ожидаемый конечный результат после использования XSLT для преобразования XML-файла.
<?xml version="1.0" encoding="utf-8"?>
<Q xmlns:tns="Q" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="scheme.xsd" Source="27" Notification="true">
<SubmitID="1234">
<Label>
<Code>300</Code>
<Source>27</Source>
</Label>
<Data>
<Number>18</Number>
<Date>2018-04-01</Date>
<IsFile>0</IsFile>
</Data>
<Files>
<File>
<Name>red.pdf</Name>
<Type>FILE</Type>
</File>
<File>
<Name>picture.pdf</Name>
<Type>IMAGE</Type>
</File>
</Files>
</Submit>
</Q>
XSLT неполный и не дает ожидаемого результата.Мне все еще не хватает кода для генерации промежуточного.