2016-01-09 3 views
1

Привет, я создаю xml-файл с помощью парсеров javax.xml, способных генерировать xml-файл. Но в моем значении атрибута я получал & вместо двойной кавычки. Как распечатать двойные кавычки в значении атрибута. Ниже мой кодКак печатать двойные кавычки в значении атрибута xml

Document doc = docBuilder.newDocument(); 
      Element rootElement = doc.createElement("elements"); 
      doc.appendChild(rootElement); 
      rootElement.setAttribute("area", "area"); 
      rootElement.setAttribute("page", "pagename"); 

      //element 
      Element element = doc.createElement("element"); 
      rootElement.appendChild(element); 
      element.setAttribute("key", "key"); 
      element.setAttribute("id", "id"); 
      element.setAttribute("path", "//*[@id="email"]"); 
      } 
        // write the content into xml file 
      TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
      Transformer transformer = transformerFactory.newTransformer(); 
      transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
      transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); 
      DOMSource source = new DOMSource(doc); 
      StreamResult result = new StreamResult(new File(ApplicationContext.getPath()+File.separator+"test.xml")); 

      // Output to console for testing 
      // StreamResult result = new StreamResult(System.out); 

      transformer.transform(source, result); 

Output : 
<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<elements area="area" page="pagename"> 
<element id="id" key="key" path="//*[@id=&quot;email&quot;]"/> 
</elements> 

Expected output: 
<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
    <elements area="area" page="pagename"> 
    <element id="id" key="key" path="//*[@id="email"]"/> 
    </elements> 

Благодаря inadvance

+0

вы пытаетесь избежать последовательности в java пожалуйста. –

+0

Привет, Кумаресан, спасибо за быстрый ответ. Мои значения атрибутов поступают динамически. В приведенном выше коде я жестко закодировал свои значения атрибутов. Я попытаюсь убежать, есть ли другой подход к печати двойных кавычек. – user3355101

+0

System.out.println ('' '+ s +' ''); вы пытаетесь это сделать –

ответ

2

Выходной сигнал вы пытаетесь произвести не очень хорошо сформированный XML, а не XML-парсер не будет принимать его. Если вы хотите создать материал, который не является XML, вы можете сделать это, конечно, но инструменты, ориентированные на XML, будут очень стараться предотвратить это.

+0

Это правильный ответ или курс. Просто примечание; XML-объект '"', который генерирует генератор XML, конечно же, будет преобразован обратно в двойную цитату любым XML-парсером при чтении документа. –

Смежные вопросы