XMLのENTITY属性を使用して外部サブファイルをロードしたかったのです。私はそれを以下の手順で行った。DOMでXMLを解析すると、!ENTITY参照が削除される
<!DOCTYPE doc [
<!ENTITY A SYSTEM "C:///XML//A.xml">
<!ENTITY B SYSTEM "C://XML//B.xml">
<!ENTITY C SYSTEM "C://CONFIGURATION//XML//C.xml">
]>
<list idPrefix="N" seqIdLength="5">
&A;
</list>
はその後、XMLに、私は&を使用してこれらのエントリを参照しています。そしてXMLはA.xmlに行き、このファイルから各xml要素を読み込みます。しかし、私はjavaからこのメインのXMLを変更したい場合、私はproblem.FirstすべてのDOCTYPEが削除されています。 DOCTYPEを消去すると、以下の形式でxmlを変更しました。
<!DOCTYPE doc SYSTEM "C://XML//test.dtd">
私はtest.dtdに次の行をコピーしました。
<!ENTITY A SYSTEM "C:///XML//A.xml">
<!ENTITY B SYSTEM "C://XML//B.xml">
<!ENTITY C SYSTEM "C://CONFIGURATION//XML//C.xml">
XMLを保存すると、Now DOCTYPEは削除されません。しかし私には別の問題があります。 &の代わりに、Aファイルの内容がmain xmlに挿入され、ENTITYパスへの参照が挿入されます。
<list idPrefix="N" seqIdLength="5">
<alist name = "1" xml:base="file:///C://XML//A.xml"/>
<alist name = "2" xml:base="file:///C://XML//A.xml"/>
<alist name = "3" xml:base="file:///C://XML//A.xml"/>
<alist name = "4" xml:base="file:///C://XML//A.xml"/>
<alist name = "5" xml:base="file:///C://XML//A.xml"/>
<alist name = "6" xml:base="file:///C://XML//A.xml"/>
<alist name = "7" xml:base="file:///C://XML//A.xml"/>
</list>
これでENTITYの機能が失われました。私はmain xmlにすべてのデータを持っています。これに対する解決策はありますか?