Xml 如何通过xslt获得子标记和父标记的替代值

Xml 如何通过xslt获得子标记和父标记的替代值,xml,xslt,Xml,Xslt,我有一个下面的XML结构,Title tag是父标记,而Micro tag是子标记,在输出中我需要第一个Micro tag的值,即“K”,然后是Title tag的第一个文本值,即“,”然后是第二个Micro tag的值,即“e”,然后是Title tag的第二个文本值,即“,”等等。 我正在使用这个输入xml文件 <Head> <Title> <Micro>K</Micro>, <Micro> <Ind>L<

我有一个下面的XML结构,Title tag是父标记,而Micro tag是子标记,在输出中我需要第一个Micro tag的值,即“K”,然后是Title tag的第一个文本值,即“,”然后是第二个Micro tag的值,即“e”,然后是Title tag的第二个文本值,即“,”等等。
我正在使用这个输入xml文件

 <Head>
 <Title>
 <Micro>K</Micro>, <Micro>
 <Ind>L</Ind>
 <Ind>X</Ind>E</Micro>, and <Micro>S</Micro> I</Title>
 <Title>
 <Micro>M</Micro>
 <Ind>W</Ind>
 <Ind>G</Ind> O</Title><Head>

K
L
XE和si
M
W
GO
输出应为:

    <Heading topic="K,E, and S I"/>
    <Heading topic="M O"/>

我相信这对你来说应该是可行的:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>

<xsl:template match="/">
<xsl:for-each select="Head/Title">
    <Heading>
        <xsl:attribute name="topic">
            <xsl:for-each select="Micro/text() | text()">
                <xsl:value-of select="translate(., '&#10;', '')"/>
            </xsl:for-each>
        </xsl:attribute>
    </Heading>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

注:
当元素包含有意义的文本节点时,源XML不应该在Title元素中真正包含换行符


此外,我还必须修复结尾的头标签。

您尝试了什么?此外,您的输入XML不是XML。您是否可以包括您尝试使用的XSLT,并描述它如何无法正确执行?我使用了以下代码:。请包括整个样式表(或者,如果太长,请选择相关模板)并将其编辑到原始帖子中,不要在注释中发布代码。