Подтвердить что ты не робот

Как преобразовать объект String в объект DOM Document в java?

У меня есть случай, как получение XML и преобразование XML-элементов для документирования объекта и получение значений и атрибутов элемента, которые я уже создал

Вот фрагмент кода, который я попытался преобразовать в объект документа DOM

String xmlString = " <r><e>d</e></r>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
org.w3c.dom.Document document = builder.parse(new InputSource(new StringReader(xmlString)));    
TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(document);
StreamResult result =  new StreamResult(new StringWriter());
transformer.transform(source, result);
String str1 = result.getWriter().toString();
System.out.println(str1);

Но этот случай действителен только для элементов без атрибутов что мы можем сделать, если

String xmlString = "<element attribname="value" attribname1="value1"> pcdata</element>"

мы используем двойные кавычки для значений атрибутов "значение". Компилятор показывает ошибку

Предложите мне, есть ли какой-либо кодировщик и декодер xml для обработки этих сценариев?

4b9b3361

Ответ 2

Либо выйдите из двойных кавычек с помощью \

String xmlString = "<element attribname=\"value\" attribname1=\"value1\"> pcdata</element>"

или вместо этого используйте одинарные кавычки

String xmlString = "<element attribname='value' attribname1='value1'> pcdata</element>"

Ответ 3

     public static void main(String[] args) {
    final String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"+
                            "<Emp id=\"1\"><name>Pankaj</name><age>25</age>\n"+
                            "<role>Developer</role><gen>Male</gen></Emp>";
   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
        DocumentBuilder builder;  
        try 
        {  
            builder = factory.newDocumentBuilder();  
            Document doc = builder.parse( new InputSource( new StringReader( xmlStr )) ); 

        } catch (Exception e) {  
            e.printStackTrace();  
        } 
  }

Ответ 4

DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = db.parse(new ByteArrayInputStream(xmlString.getBytes("UTF-8"))); //remove the parameter UTF-8 if you don't want to specify the Encoding type.

это хорошо работает для меня, хотя структура XML сложна.

И, пожалуйста, убедитесь, что xmlString действителен для XML, обратите внимание, что символ escape должен быть добавлен "\" спереди.

Основная проблема может быть не из атрибутов.