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

Как включить &, <,> и т.д. В значения атрибутов XML

Я хочу создать XML файл, который будет использоваться для хранения структуры Java-программы. Я могу успешно проанализировать программу Java и создать теги по мере необходимости. Проблема возникает, когда я пытаюсь включить исходный код в мои теги, поскольку исходный код Java может использовать огромное количество ссылок на объекты и зарезервированных символов, таких как &, <, >, &. Я не могу создать допустимый XML.

Мой XML должен выглядеть следующим образом:

<?xml version="1.0"?>
<prg name="prg_name">
  <class name= "class_name>
    <parent>parent class</parent>
      <interface>Interface name</interface>
.
.
.
      <method name= "method_name">
        <statement>the ordinary java statement</statement>
        <if condition="Conditional Expression">
          <statement> true statements </statement>
        </if>
        <else>
          <statement> false statements </statement>
        </else>
        <statement> usual control statements </statement>
 .
 .
 .
      </method>
    </class>
 .
 .
 .
 </prg>

Подобным образом, но проблема заключается в условных выражениях if, а в других операторах содержится много & или других зарезервированных символов, которые препятствуют проверке XML. Поскольку все эти данные (исходный код) заданы пользователем, я мало контролирую его. Экранирование символов будет очень дорогостоящим с точки зрения времени.

Я могу использовать CDATA для удаления текста элемента, но он не может использоваться для значений атрибутов, содержащих условные выражения. Я использую Antlr Java-грамматику для анализа Java-программы и получения атрибутов и содержимого для тегов. Так есть ли другой способ обхода?

4b9b3361

Ответ 1

Вам придется бежать

" to  &quot;
' to  &apos;
< to  &lt;
> to  &gt;
& to  &amp;

для xml.

Ответ 2

В атрибутах XML вы должны выйти

" with &quot;
< with &lt;
& with &amp;

если вы переносите значения атрибута в двойные кавычки ("), например

<MyTag attr="If a&lt;b &amp; b&lt;c then a&lt;c, it obvious"/>

Значение тега MyTag с атрибутом attr с текстом If a<b & b<c then a<c, it obvious - примечание: нет необходимости использовать &apos; для выхода '.

Если вы переносите значения атрибута в одинарные кавычки ('), вам следует избегать этих символов:

' with &apos;
< with &lt;
& with &amp;

и вы можете написать " как есть. Экранирование > с &gt; в тексте атрибута не требуется, например. <a b=">"/> - это хорошо сформированный XML.