-1

DOM または SAX を使用して Java で xml ファイルを解析しようとしています。

問題は解析中です。xml に属性値が のような特殊文字として含まれている< > "と、パーサーがスローしParserExceptionます。

たとえば、xml ファイル:

<?xml version="1.0" encoding="UTF-8"?>
<abc>
     <check name="bike" value="apache<is good model">
     <check name="car" value="tata "sumo">
</abc>

この例では、xml 要素<check>に属性値があり、<orが含まれています"

パーサーはそれを無効と見なし、パーサー例外をスローします。

今私の問題は、xmlファイルをパーサーに解析する前に、xmlファイルの属性値でその特殊文字を検出し、シンボルに置き換える必要があることです。

例えば:

xml に含まれる場合<

<check name="bike" value="apache<is good model">

スペースに置き換える

<check name="bike" value="apache is good model">

提案をお願いします。どのような方法でそれを行うことができますか... XSDを使用して行うことができますか...事前に感謝します。

4

2 に答える 2

0

入力を制御できる場合は、問題のある<文字を&amp;lt;パーサーが受け入れる必要がある に置き換えます。

入力を制御できない場合は、例外をキャッチする方法を見つけてください。

于 2012-09-22T18:31:39.383 に答える
0

<および>XML で定義済みのエンティティであり、属性または値の一部として受け入れることはできません。有効な XML および HTML 文字のリストについては、wikiページを確認してください。

<XML 値として使用する場合は、代わりにCDATAタグを使用してください

<element  attr="elemAttr">
<value>
<![CDATA[< allowed here]]>
</value>
</element>
于 2012-09-22T07:29:37.910 に答える