2009-04-16 86 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。

我正在使用Java讀取xml文件。在我的Java類中,我想將整個嵌入標記作爲一個字符串。

回答

5

我想你不是用合適的工具(DOM API)生成XML,而是通過串聯字符串。

如果進一步假設您在問題中顯示的XML不是觸發錯誤的XML。

我覺得你有這樣的事情:

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

這將觸發一個錯誤消息,指出字符實體「pn_uname」沒有很好地形成。

表達上述正確的方法是:

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

...這是使用API​​用於XML生成什麼將自動爲您處理。避免字符串連接來生成XML。

4

爲了把HTML代碼作爲值的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> 

清單:entities in XML

+0

唔...那豈不是也可以保持文件它是什麼?只要它是XHTML,就不需要編碼。 – Tomalak 2009-04-16 10:17:49