Javascript API中的xml数据有多个未定义的名称空间-如何使用xslt在html中显示它?

Javascript API中的xml数据有多个未定义的名称空间-如何使用xslt在html中显示它?,javascript,xml,xslt,Javascript,Xml,Xslt,我使用RESTAPI从数据库获取XML数据,并尝试使用xslt以html格式显示它。不幸的是,xml数据返回时带有一些未定义的名称空间。如果剥离名称空间或定义名称空间,我可以让样式表在数据的本地副本上正常工作。将名称空间条带化感觉像是一种黑客行为,没有正确的方法 这本质上是我得到的数据的一个示例: <root> <entity:Entity ns1:atrib="foo"> <g:Value>foo1</g:value> <g

我使用RESTAPI从数据库获取XML数据,并尝试使用xslt以html格式显示它。不幸的是,xml数据返回时带有一些未定义的名称空间。如果剥离名称空间或定义名称空间,我可以让样式表在数据的本地副本上正常工作。将名称空间条带化感觉像是一种黑客行为,没有正确的方法

这本质上是我得到的数据的一个示例:

<root>
<entity:Entity ns1:atrib="foo">
    <g:Value>foo1</g:value>
    <g:Name>fooName</g:Name>
</entity:Entity>

foo1
食物名

JS中的xmlhttprequest方法获取此信息,XSLTProcessor对其进行转换,然后将其添加到。它没有显示转换后的信息,我100%肯定是名称空间造成了问题


我用谷歌搜索了我能想到的所有东西,但没有运气。像这样的障碍几乎总是因为我遗漏了一些基本的东西。

XSLT将只对格式良好的XML进行操作,并且它需要声明所有名称空间。如果你想处理这些数据,最好在源代码处修复它;如果您不能做到这一点,您需要在处理之前修复它


有一些XML解析器允许您处理非名称空间感知的XML,您可以使用这种解析器作为修复工具的基础,但这是一个非常不寻常的要求,我不得不让您自己研究如何做到这一点。

您应该修复服务器端代码以返回有效的XML。更改服务器端代码根本不是一个选项。是的,由于无法控制源代码,我只需要手动定义名称空间或将其删除。