gpt4 book ai didi

xml - XSLT 和命名空间的问题

转载 作者:数据小太阳 更新时间:2023-10-29 02:25:22 24 4
gpt4 key购买 nike

我是 XSLT 的新手,所以这个问题可能已经在其他时候得到了回答。我已经搜索过了,但我没有找到任何东西:(

我需要像这样解析 XML

<ns1:tagName1>
<ns2:tagName2>
This is the content
</ns2:tagName2>
</ns1:tagName1>

我为此使用了这个 XSL

<xsl:template match="ns1:tagName1">
<resultns1>
<xsl:if test="ns2:tagName2">
<resultns2>
<xsl:value-of select=".">
</resultns2>
</xsl:if>
</resultns1>
</xsl:template>

我期望的结果是

<resultns1>
<resultns2>
This is the content
</resultns2>
</resultns1>

但取而代之的是,我得到的只是

<resultns1/>

如果两个标签使用相同的命名空间,一切都按预期工作,但如果外部标签在 ns1 中,内部标签在 ns2 中,则不会检测到内部标签。关于为什么会发生这种情况的任何线索?

谢谢!

最佳答案

它对我来说很好用; XML:

<?xml version="1.0" encoding="utf-8" ?>
<xml xmlns:ns1="foo" xmlns:ns2="bar">
<ns1:tagName1>
<ns2:tagName2>
This is the content
</ns2:tagName2>
</ns1:tagName1>
</xml>

xslt:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns1="foo" xmlns:ns2="bar"
exclude-result-prefixes="ns1 ns2"
>
<xsl:template match="/xml">
<xsl:apply-templates select="*"/>
</xsl:template>

<xsl:template match="ns1:tagName1">
<resultns1>
<xsl:if test="ns2:tagName2">
<resultns2>
<xsl:value-of select="."/>
</resultns2>
</xsl:if>
</resultns1>
</xsl:template>
</xsl:stylesheet>

结果:

<?xml version="1.0" encoding="utf-8"?>
<resultns1>
<resultns2>
This is the content
</resultns2>
</resultns1>

关于xml - XSLT 和命名空间的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/689443/

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