Игнорировать текст между тегами XML - PullRequest
0 голосов
/ 20 апреля 2011
""" test.xml

<xyz>
      <pqr>
        <abc><a href="data:text/html;charset=utf-8,base64,JTNjc2NyaXB0JTNlYWxlcnQoIlhTUyIpO2hpc3RvcnkuYmFjaygpOyUzYy9zY3JpcHQlM2UiPjwvYT4=</abc>
      </pqr>
      <pqr>
        <abc><iframe src="data:text/html;charset=utf-8,base64,JTNjc2NyaXB0JTNlYWxlcnQoIlhTUyIpO2hpc3RvcnkuYmFjaygpOyUzYy9zY3JpcHQlM2UiPjwv</abc>
      </pqr>
<xyz>

""""

когда я использую этот XML-файл и анализирую в python, он показывает ошибку (не правильно сформирован)Как я могу разобрать этот XML-файл или любой другой метод, чтобы получить данные из этого файла.

Ответы [ 3 ]

2 голосов
/ 20 апреля 2011

Вы можете сначала изменить xml и использовать cdata, чтобы заключить в него плохо отформатированный xml

пример:

<xyz>
      <pqr>
        <abc><![CDATA[<a href="data:text/html;charset=utf-8,base64,JTNjc2NyaXB0JTNlYWxlcnQoIlhTUyIpO2hpc3RvcnkuYmFjaygpOyUzYy9zY3JpcHQlM2UiPjwvYT4=]]></abc>
      </pqr>
      <pqr>
        <abc><![CDATA[<iframe src="data:text/html;charset=utf-8,base64,JTNjc2NyaXB0JTNlYWxlcnQoIlhTUyIpO2hpc3RvcnkuYmFjaygpOyUzYy9zY3JpcHQlM2UiPjwv]]></abc>
      </pqr>
<xyz>

см .: http://www.w3schools.com/xml/xml_cdata.asp

После этогопросто используйте python xml parser

1 голос
/ 20 апреля 2011

Тег <xyz> не сбалансирован (есть два открывающих тега), а строка test.xml является ложной. Ваш тег <a> не закрыт, а его атрибут href не указан. То же самое с вашим тегом iframe. Парсер, который вы используете, должен сообщить вам, где он обнаружил ошибку. Исправьте это, и тогда вы будете в порядке.

Если вы хотите проанализировать xml , сначала вы должны убедиться, что это правильно сформированный XML . Часто можно сделать небольшой массаж, чтобы сделать в противном случае неразборчивый фрагмент кода хорошо сформированным, чтобы вы могли использовать стандартный синтаксический анализатор.

0 голосов
/ 20 апреля 2011

Быстрый визуальный осмотр вашего XML-фрагмента, и две вещи, которые бросились мне в глаза: ваш XML плохо сформирован:

  • Ваш закрывающий <xyz> элемент отсутствует, его косая черта: он должен быть </xyz>
  • Ваши элементы <a> и <iframe> также не закрыты.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...