Использование тега вставки в XML - PullRequest
1 голос
/ 16 апреля 2009

Я очень, очень плохо знаком с 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>

В приведенном выше файле элемент кода имеет тег для вставки. Для моего приложения мне нужно вставить тег в виде строки. В элементе кода, если я использую любую строку вместо тега вставки, я могу прочитать эту строку. Если я использую тег для встраивания, я получаю сообщение об ошибке:

[фатальная ошибка] gamelist.xml: 5: 103: ссылка на сущность "pn_uname" должна заканчиваться на ";" делиметр.

Я использую Java для чтения XML-файла. В моем классе Java я хочу, чтобы весь тег embed представлял собой строку.

Ответы [ 2 ]

5 голосов
/ 16 апреля 2009

Полагаю, вы генерируете XML не с помощью подходящих инструментов (API DOM), а путем объединения строк.

Если далее предположить, что 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 голосов
/ 16 апреля 2009

Чтобы поместить 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>

Список: сущностей в XML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...