Xml 在XSLT中处理名称空间和变量
我有一个如下所示的xml文件。为简洁起见,我没有完整地列出它Xml 在XSLT中处理名称空间和变量,xml,variables,xslt,namespaces,Xml,Variables,Xslt,Namespaces,我有一个如下所示的xml文件。为简洁起见,我没有完整地列出它 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <OBJECTS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.example.com
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<OBJECTS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.example.com/"
xsi:schemaLocation=".\\intermediate\\example.xsd">
<OBJECT>
<abbreviation>ABCD</abbreviation>
<LINKS>
....
如果我删除XML文件中的名称空间,我就会得到它。问题出在哪里?不是100%确定您想要实现什么,但我注意到您没有在子选择器中使用
t:
前缀,因此我建议使用
<xsl:variable name="objs" select ="t:OBJECTS/t:OBJECT"/>
而不是
<xsl:variable name="objs" select ="t:OBJECTS/OBJECT"/>
无法100%确定您想要实现什么,但我注意到您没有在子选择器中使用
t:
前缀,因此我建议使用
<xsl:variable name="objs" select ="t:OBJECTS/t:OBJECT"/>
而不是
<xsl:variable name="objs" select ="t:OBJECTS/OBJECT"/>
这是正确的。默认名称空间(没有前缀)是继承的,因此对象
与其父对象位于同一名称空间中。它工作得非常好。我的目标是使用单个xslt处理来自多个名称空间的多个xml文档。到目前为止,我取得了部分成功,非常感谢你在很短的时间内给出了精确的指针。这是正确的。默认名称空间(没有前缀)是继承的,因此对象
与其父对象位于同一名称空间中。它工作得非常好。我的目标是使用单个xslt处理来自多个名称空间的多个xml文档。到目前为止,我取得了部分成功,非常感谢你在很短的时间内给出了准确的指针。