gpt4 book ai didi

xslt 中的 XML 命名空间处理

转载 作者:行者123 更新时间:2023-12-04 05:01:50 24 4
gpt4 key购买 nike

我需要使用 xslt 从一种 xml 格式转换为另一种 xml。最初我尝试没有命名空间,但我得到了它。但是当我尝试使用 namespace xmlns="http://ws.wso2.org/dataservice"时,它在给定的 xml 文件中没有前缀如 xmlns:d="http://ws.wso2.org/dataservice"时不起作用

<test xmlns="http://ws.wso2.org/dataservice">
<datarows>
<name>Name</name>
</datarows>
<datarows>
<name>karthik</name>
</datarows>
</testcsv>

我需要 xsl 转换后的 xml 文件
<head>
<names>Name</names>
<names>karthik</names>
</head>

帮我解决 xslt

我试过 xslt 作为
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://ws.wso2.org/dataservice" exclude-result-prefixes="d" >
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<namespace-alias stylesheet-prefix="xsl" result-prefix="#default"/>


<xsl:template match="/">
<head>
<xsl:for-each select="testcsv/datarows">
<names>
<xsl:value-of select="name" />
</names>
</xsl:for-each>
</head>
</xsl:template>
</xsl:stylesheet>

最佳答案

请更改以下内容列表:
1. 您的输入 XML 格式不正确。请将根元素更改为 <testcsv>2.删除<namespace-alias stylesheet-prefix="xsl" result-prefix="#default"/>来自您的 XSLT,因为它不需要。
3. 在输入 XML 中添加命名空间 xmlns:d="http://ws.wso2.org/dataservice"

输入 XML:

<?xml version="1.0"?>
<testcsv xmlns:d="http://ws.wso2.org/dataservice">
<datarows>
<name>Name</name>
</datarows>
<datarows>
<name>karthik</name>
</datarows>
</testcsv>

XSLT 转换:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://ws.wso2.org/dataservice" exclude-result-prefixes="d" >
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>

<xsl:template match="/">
<head>
<xsl:for-each select="testcsv/datarows">
<names>
<xsl:value-of select="name" />
</names>
</xsl:for-each>
</head>
</xsl:template>
</xsl:stylesheet>

输出:
<head>
<names>Name</names>
<names>karthik</names>
</head>

关于xslt 中的 XML 命名空间处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16075174/

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