2016-08-11 29 views
0

私はdocumentbuilderを使用して以下のコンテンツを解析しようとしています。xml javaを解析中の例外

<html> 
<head> 
<meta charset="utf-8" /> 
<title>Test</title> 
</head> 
<body> 
<img height="" src="google.gif?<>" /> 
</body> 
</html> 

パーザは例外として、srcには<を含めることができません。私はxslを適用しているので、解析する必要があります。 これを行う方法はありますか。今のところ、私は最初にdocumentbuilderを使用して解析し、再度エスケープしてエスケープしています。

データベースから上記のxmlをString形式で取得しています。今私はdocumentbuilderを使用してそれを解析しようとしているときに私は例外を受け取りますsrcは<を含めることはできません。私はStringEscapeUtils.EscapeHTMLを使用してエスケープしようとしましたが、完全なStringをeascapingして、再度documentBuildetを解析できません。 HTmlからのみsrcをパーズする方法を私に教えてください。私はそれを達成できません。 -

+0

これは、XMLエンコーディング[リンク](http://stackoverflow.com/questions/7818928/how-to-encode-symbols-in-xml) – Karthik

+1

XMLパーサのために有用であろうそこにXMLを解析する必要があります。この入力はXMLではありません。あなたはそれを修復しなければならないでしょう。 –

答えて

4

これらの記号<>は、XMLのタグに使用される定義済みのエンティティです。特別な表記法を使用する必要があります。 Wikipediaで詳細を読む。

  • &gt;ため>
  • &lt;ため<
  • &quot;ため"
  • &apos;ため'
  • &amp;ため&

Y我々のコードは最終的に次のようになります。

<img height="" src="google.gif?&lt;&gt;" /> 
+0

私は構文解析したい< > – user3287034

+0

私はデータベースから上記のhtmlをString形式で取得しています。ドキュメントビルダーを使って解析しようとしているときに、srcに<を含めることができないという例外が発生しています。私はStringEscapeUtils.EscapeHTMLを使用してエスケープしようとしましたが、完全なStringをeascapingして、再度documentBuildetを解析できません。 HTmlからのみsrcをパーズする方法を私に教えてください。私はそれを達成できません。 – user3287034

+0

私はそれをaboceと置き換えている場合、以下の例外が発生しています。org.xml.sax.SAXParseException:参照はプロローグで許可されていません。 – user3287034