2009-04-16 11 views
1

私はXMLに非常に新しいです。私はxmlファイルを使用するアプリケーションを開発しています。 Googleの助けを借りてこのファイルを作成しました。私のサンプルXMLファイルは:xmlに埋め込みタグを使用する

<?xml version="1.0"?> 
<gamelist> 
<game> 
    <title>Driver</title> 
    <code><EMBED src="http://www.pnflashgames.com/modules/pnFlashGames/games/racer.swf"></EMBED></code> 
    <rating>4</rating> 
</game> 
<game> 
    <title>ConeCrazy</title> 
    <code><EMBED  src="http://www.pnflashgames.com/modules/pnFlashGames/games/ConeCrazy.swf"></EMBED></code> 
    <rating>3</rating> 
</game> 
</gamelist> 

上記のファイルコード要素には埋め込みタグがあります。私のアプリケーションでは、埋め込みタグが文字列として必要です。コード要素では、埋め込みタグの代わりに任意の文字列を使用すると、その文字列を読み取ることができます。私は埋め込みタグを使用している場合、私はこのようなエラーを取得しています:

[致命的なエラー] gamelist.xml:5:103:「pn_uname」エンティティへの参照がで終わらなければなりません「;」 delimeter。

私はXMLファイルを読むためにJavaを使用しています。私のJavaクラスでは、埋め込みタグ全体が文字列として必要です。

答えて

5

適切なツール(DOM API)を使用してXMLを生成するのではなく、文字列を連結するとします。

あなたの質問に表示されているXMLが、エラーを引き起こすXMLではないとします。

私はあなたがこのような何かを持っていると思う:

<EMBED src="http://foo/bar/racer.swf?bla&pn_uname=baz"></EMBED> 

これは、文字エンティティ「pn_unameは」よく形成されていないというエラーメッセージをトリガします。

上記表現するための正しい方法は次のようになります。自動的に扱うだろうXMLの生成のためのAPIを使用しているもの

<EMBED src="http://foo/bar/racer.swf?bla&amp;pn_uname=baz"></EMBED> 

...。 XMLを生成するために文字列の連結を避けてください。

<?xml version="1.0"?> 
<gamelist> 
<game> 
    <title>Driver</title> 
    <code>&lt;EMBED src=&quot;http://www.pnflashgames.com/modules/pnFlashGames/games/racer.swf&quot;&gt;&lt;/EMBED&gt;</code> 
    <rating>4</rating> 
</game> 
<game> 
    <title>ConeCrazy</title> 
    <code>&lt;EMBED src=&quot;http://www.pnflashgames.com/modules/pnFlashGames/games/ConeCrazy.swf&quot;&gt;&lt;/EMBED&gt;</code> 
    <rating>3</rating> 
</game> 
</gamelist> 

一覧::あなたはそれをエンコードする必要があるXML要素の値としてhtmlコードを入れて

4
+0

フム...また、ファイルを保存することはできませんそのまま?それがXHTMLである限り、エンコードする必要はありません。 – Tomalak

+0

はい、可能ですが、その代わりにコード要素のinnerXmlを取得する必要があります。 – Guffa

+0

しかし、ドキュメントでXPath/XSLTを実行しようとすると、あなたが噛まれることになります。私はいつもXHTMLを直接格納しようとします(必要ならXHTMLに変換してください)。 – Tomalak

関連する問題