56

Java プログラムの構造を格納するために使用される XML ファイルを作成したいと考えています。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 プログラムを解析し、タグの属性とコンテンツを取得しています。それで、それに対する他の回避策はありますか?

4

2 に答える 2

98

あなたは逃げる必要があります

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

xml の場合。

于 2011-04-18T21:42:34.533 に答える