Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XmlParse/serialize后属性值丢失中使用的groovy xml命名空间定义_Groovy_Xml Parsing_Namespaces - Fatal编程技术网

XmlParse/serialize后属性值丢失中使用的groovy xml命名空间定义

XmlParse/serialize后属性值丢失中使用的groovy xml命名空间定义,groovy,xml-parsing,namespaces,Groovy,Xml Parsing,Namespaces,使用XmlParser时,它会自动删除未使用的命名空间定义。它似乎没有检测到值中使用的名称空间 示例代码:属性“type”的值是“xs:string”,它需要名称空间定义,但XmlParser将其去掉 import groovy.xml.XmlUtil def xml = '''<?xml version="1.0" encoding="UTF-8"?> <value xmlns:xs="http://xs" type="xs:string">http://localh

使用XmlParser时,它会自动删除未使用的命名空间定义。它似乎没有检测到值中使用的名称空间

示例代码:属性“type”的值是“xs:string”,它需要名称空间定义,但XmlParser将其去掉

import groovy.xml.XmlUtil

def xml = '''<?xml version="1.0" encoding="UTF-8"?>
<value xmlns:xs="http://xs" type="xs:string">http://localhost:8001/MyService</value>
'''
def doc = new XmlParser().parseText(xml)

println(xml)
println(XmlUtil.serialize(doc))
import groovy.xml.XmlUtil
def xml=''
http://localhost:8001/MyService
'''
def doc=new XmlParser().parseText(xml)
println(xml)
println(XmlUtil.serialize(doc))
输出:

****ORIGINAL****
<?xml version="1.0" encoding="UTF-8"?>
<value xmlns:xs="http://xs" type="xs:string">http://localhost:8001/MyService</value>

****XML PARSED/SERIALIZED*****
<?xml version="1.0" encoding="UTF-8"?>
<value type="xs:string">http://localhost:8001/MyService</value>
****原件****
http://localhost:8001/MyService
****XML解析/序列化*****
http://localhost:8001/MyService
有没有办法告诉XmlParser保留这个名称空间定义

    def parser = new XmlParser()
    parser.setFeature("http://xml.org/sax/features/namespaces", false)
    parser.setFeature("http://xml.org/sax/features/namespace-prefixes", true)
    doc = parser.parseText(xml)
    println(XmlUtil.serialize(doc))