gpt4 book ai didi

xslt - 如何处理链接到另一个xml的xml,并在给定元素下复制整个xml结构

转载 作者:行者123 更新时间:2023-12-03 15:55:45 25 4
gpt4 key购买 nike

我正在XSLT上工作,在这里我必须在两个xml之间遍历并在任何给定标记下复制整个xml。

主要XML:

    <Content xmlns="some name space">
<message>abcd/<message>
<group xlink:href="Some link"></group>

</Content>


链接的XML:

    <Content xmlns="linked xml name space">

<text>
<strong xmlns="http://www.w3.org/1999/xhtml">Hello</strong>


<br xmlns="http://www.w3.org/1999/xhtml"></br>

1. Hi

<br xmlns="http://www.w3.org/1999/xhtml"></br>

2. Hi all

<br xmlns="http://www.w3.org/1999/xhtml"></br>

3. Bye
</text>
</Content>


我想在给定的xml元素下获取整个xml结构。

必需的输出。

    <AAA>
<msg>abcd</msg>
<data>
<strong xmlns="http://www.w3.org/1999/xhtml">Hello</strong>


<br xmlns="http://www.w3.org/1999/xhtml"></br>

1. Hi

<br xmlns="http://www.w3.org/1999/xhtml"></br>

2. Hi all

<br xmlns="http://www.w3.org/1999/xhtml"></br>

3. Bye
</data>
</AAA>


XSLT写道:

        <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:simple="some name space" xmlns:link="linked xml name space" xmlns:xlink="http://www.w3.org/1999/xlink"  xmlns:xh="http://www.w3.org/1999/xhtml">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" />
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>

<xsl:template match="simple:Content">
<AAA>
<msg>
<xsl:apply-templates select="simple:key" />
</msg>
<xsl:variable name="LINKED_COMPONENT" select="simple:group/document(@xlink:href)" />

<data>
<xsl:apply-templates select="$LINKED_COMPONENT//link:text"/>
</data>
</AAA>
</xsl:template>

<xsl:template match="*">
<xsl:copy>
<!-- descend -->
<xsl:apply-templates />
</xsl:copy>
</xsl:template>

</xsl:stylesheet>


输出得到:

       <AAA>
<msg>abcd</msg>
<data>
<text xmlns="linked xml name space">
<strong xmlns="http://www.w3.org/1999/xhtml">Hello</strong>


<br xmlns="http://www.w3.org/1999/xhtml"></br>

1. Hi

<br xmlns="http://www.w3.org/1999/xhtml"></br>

2. Hi all

<br xmlns="http://www.w3.org/1999/xhtml"></br>

3. Bye
</text>
</data>
</AAA>


“文本”标签也将复制到此处。我不想复制这些标签。

谁能帮我改正。

最佳答案

只是改变:

<xsl:apply-templates select="$LINKED_COMPONENT//link:text"/>


至:

<xsl:apply-templates select="$LINKED_COMPONENT//link:text/node()"/>

关于xslt - 如何处理链接到另一个xml的xml,并在给定元素下复制整个xml结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10796341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com