Java 如何删除重复的XML声明
我通过Jersey客户端收到以下XML响应Java 如何删除重复的XML声明,java,xml,xsd,jersey,jersey-client,Java,Xml,Xsd,Jersey,Jersey Client,我通过Jersey客户端收到以下XML响应 <?xml version="1.0" encoding="UTF-8" standalone="yes"?><aaa><bbb key="Data"><?xml version="1.0" encoding="UTF-8" standalone="yes"?> <my-data xsi:noNamespaceSchemaLocation="MyData.xsd" xmlns:xsi="http:/
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><aaa><bbb key="Data"><?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<my-data xsi:noNamespaceSchemaLocation="MyData.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<data name="abc" uniqueId="4fe95637-a381-4e0c-bf7f-49f794df5f23">
<variable var1="xyz" value="44"/>
</data>
</my-data>
</bbb></aaa>
理想情况下,您应该在源位置解决问题。您收到的不是XML,因为有多个XML声明违反了XML的基本语法,导致数据格式不正确
如果无法在源位置正确修复问题,并且希望尝试修复,则必须将该数据视为文本,而不是XML,直到删除额外的XML声明(通过文本级操作,而不是XML解析)。修复接收到的XML。您将收到两个xml声明 xml格式不正确。请记住,在Jersey中,您可以通过注释和@products接收JSON、xml、html等格式的文件 请记住,您在internet上有xml验证器来验证您的xml 问候
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
String output = response.getEntity(String.class);
file = writeResponseToFile(output,"MyData.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(file); //Error