2009-04-16 82 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