如果我删除所有命名空间和前缀,我的XSLT转换将完美运行。
我曾尝试过几次引入名称空间,但最终总是出现某种错误或没有输出,因此我在这里寻求一些帮助和理解。
我的预期输出,缩减为命名空间和前缀,是:
<?xml version="1.0" encoding="utf-8"?>
<gpx xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="1.0" creator="GSAK"
xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.groundspeak.com/cache/1/0/1 http://www.groundspeak.com/cache/1/0/1/cache.xsd http://www.gsak.net/xmlv1/6 http://www.gsak.net/xmlv1/6/gsak.xsd"
xmlns="http://www.topografix.com/GPX/1/0">
<desc>...</desc>
<author>...</author>
<wpt lat="..." lon="...">
<name>...</name>
...
<gsak:wptExtension xmlns:gsak="http://www.gsak.net/xmlv1/6">
<gsak:DNF>...</gsak:DNF>
...
</gsak:wptExtension>
<groundspeak:cache id="..." available="..." archived="..." xmlns:groundspeak="http://www.groundspeak.com/cache/1/0/1">
<groundspeak:name>...</groundspeak:name>
</groundspeak:cache>
</wpt>
<wpt lat="..." lon="...">
...
</wpt>
</gpx>
再次缩减的XML输入是:
<AdventureModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/GamePlayer.Business.WebAPI.Contracts.Models">
<Message i:nil="..."/>
<DeepLink>..</DeepLink>
<Description>...</Description>
...
<GeocacheSummaries>
<GeocacheSummaryModel>
<Mode i:nil="..."/>
<Id>...</Id>
<Location>
<Altitude i:nil="..."/>
<Latitude>...</Latitude>
<Longitude>...</Longitude>
</Location>
...
</GeocacheSummaryModel>
<GeocacheSummaryModel>
...
</GeocacheSummaryModel>
</GeocacheSummaries>
...
</AdventureModel>
为了实现正确的命名空间转换,我需要向XSLT头中添加什么?
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
</xsl:stylesheet>
未指定XSLT版本。XSLT 2.0/3.0使命名空间处理更加容易。
这就是它在XSLT 1.0中的工作原理
输入XML具有默认命名空间:
xmlns="http://schemas.datacontract.org/2004/07/GamePlayer.Business.WebAPI.Contracts.Models"
指以下内容:
因此XSLT如下所示:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://schemas.datacontract.org/2004/07/GamePlayer.Business.WebAPI.Contracts.Models">
<xsl:template match="/">
<xsl:value-of select="a:AdventureModel/a:DeepLink"/>
</xsl:template>
</xsl:stylesheet>
我有这个xml是架构版本3.0http://www.test.com/Service/v3。我需要将其降级到版本1http://www.test.com/Service/v1.为此,我使用XSL来转换它。 但我得到这样的结果 在我的输出XML中,我得到了这个 为什么将其添加到NS2:消息中? 它不在输入xml中。 我遗漏了一些东西。如果有人能指出这个问题,我将不胜感激。 我希望在输出中创建以下内容
我试图用XSLT处理器在PHP中转换xml文档,但我无法选择任何内容。。。我认为这是一个名称空间问题。如果我从一个干净的<代码> inputxml: Xsl-file: 我无法更改输入文件,因为它是由其他程序生成的。 安德烈
我尝试像这样解析xml: 我尝试解析这个xml: 但是我的jobNode总是空的。如果我把我的xml改成这样,它就可以工作了:
我是XSLT的新手,命名空间有问题。这是我必须转换的XML: 我正在使用以下XSLT: 结果是: 我试图删除结果输入顺序中的名称空间,但它不适合我。有人能帮我学习XSLT吗?谢谢
我需要一个简单的xslt,它接受输入并提供如下所述的输出。我已经编写了xslt,但名称空间被忽略了。你能帮我一下吗。 输入消息: 预期输出消息: 实际输出消息: XSLT:
我试图将Excel xml文件的一部分呈现为超文本标记语言,以便在翻译(外语翻译)计算机辅助翻译工具中的部分内容时改进预览。 我有以下xml: 我试图从每行中提取第二个数据元素并显示它,但我根本无法显示它。我认为这与名称空间有关,我肯定遗漏了什么,但看不出是什么。这就是我正在使用的: 有人能帮我吗? 我应该补充一点,我正在使用Treebeard来测试这个,它用这些错误验证xml(我无法控制)...