点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尊敬的专家!
我是XSLT的新手。
我正在尝试创建一个转换,该转换将从XML文件中删除某个标记。 我要删除的标签具有名称空间声明。 想法是摆脱以下输入:
<?xml version =" 1.0" encoding =" utf-8"?>
...
以下内容:
<?xml version =" 1.0" encoding =" utf-8"?>
...
我正在使用以下XSLT:
不幸的是,from的命名空间声明并没有被完全删除,而是以某种方式"粘贴"到了下一个标签:
<?xml version =" 1.0" encoding =" utf-8"?>
xlmns :prx =" urn:something">
<数据>
...
有什么想法吗?
谢谢!
亚历山大。
亚历山大,你好
这是因为声明了的命名空间。 继承了的名称空间,因为没有名称空间前缀。 因此,之前具有名称空间,但已继承且未声明。 该线程从另一个角度很好地解释了此行为:
https://stackoverflow.com/questions/25788871/xml-do-child-nodes-inherit-parents-namespace-prefix
因此,按照定义,输出XML是正确的。 我希望这会有所帮助。
亲切的问候
再想一想:如果您的XSL转换只是为了从XML文档中删除不需要的名称空间-也许您可以尝试一下XMLAnonymizerBean?
问候,叶夫根尼。
嗨,亚历山大!
在这种情况下,您应该使用递归模板来创建具有相同名称和数据的新元素,而不是复制原始元素。
正如Moritz在从源树中复制元素时所提到的那样-将其与从父元素继承的名称空间信息一起复制。
退货,叶甫基尼。
一周热门 更多>