在xml中使用embed标签

时间:2009-04-16 09:42:46

标签: xml

我对xml非常新。我正在开发一个使用xml文件的应用程序。我在Google的帮助下创建了这个文件。我的示例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>

在上面的文件中,代码元素有嵌入标记。对于我的应用程序,我需要将标签嵌入为字符串。在代码元素中,如果我使用任何字符串而不是嵌入标记,我可以读取该字符串。如果我使用embed标签,我会收到这样的错误:

  

[致命错误] gamelist.xml:5:103:对实体“pn_uname”的引用必须以“;”结尾delimeter。

我正在使用Java来读取xml文件。在我的Java类中,我希望将整个embed标记作为字符串。

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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