Ich möchte eine XML-Datei erstellen, die zum Speichern der Struktur eines Java-Programms verwendet wird. Ich kann das Java-Programm erfolgreich parsen und die Tags nach Bedarf erstellen. Das Problem tritt auf, wenn ich versuche, den Quellcode in meine Tags einzufügen, da der Java-Quellcode möglicherweise eine große Anzahl von Entitätsreferenzen und reservierten Zeichen wie z &
, <
,>
, &
. Ich kann kein gültiges XML erstellen.
Mein XML sollte so aussehen:
<?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>
So, aber das Problem sind bedingte Ausdrücke if
oder andere Aussagen haben eine Menge &
oder andere reservierte Symbole in ihnen, die verhindern, dass XML validiert wird. Da all diese Daten (Quellcode) vom Benutzer bereitgestellt werden, habe ich wenig Kontrolle darüber. Den Charakteren zu entkommen wird sehr zeitintensiv sein.
Ich kann CDATA verwenden, um den Elementtext zu maskieren, aber es kann nicht für Attributwerte verwendet werden, die bedingte Ausdrücke enthalten. ich benutze Antlr Java-Grammatik zum Analysieren des Java-Programms und Abrufen der Attribute und des Inhalts für die Tags. Gibt es also eine andere Abhilfe dafür?