使用西班牙语特殊字符解析xml文档

时间:2015-03-23 12:07:51

标签: php xml character-encoding

我有一个包含西班牙语数据的xml文档。该文件编码为ISO-8859-1。 Spnish中的特殊字符显示为数字,例如363,355,341等。所以有些单词看起来像:te363ricas,caracter355sticas等等。当我尝试解析数据时,我得到无效的字符错误。

我解析数据的php脚本需要utf8数据。我已经尝试使用utf8_encode(),mb_convert_encoding()和iconv()转换数据,但它们都没有工作。

如果我在VIM中看到该文件,那么这些特殊字符就会正确显示,但当我在终端中看到来自less命令的输出时,这些数字会显示而不是字符。

以下是从文件中提取的部分内容:

从VIM复制

  

Conocer las diferentes aproximacionesteóricasalenvejecimiento ysuscaracterísticasmásrelevantantes。    - Identificar lasaspectosmásintryantessobre los que planificar la actividaddeanimación。    - Desarrollar los conocimientos necesarios con los que debe contar el animador para desarrollar la actividad adecuadamente。

从LESS命令输出复制

  

Conocer las diferentes aproximaciones te363ricas al envejecimiento y sus caracter355sticas m341s relevantes。    - Identificar las aspectos m341s importantes sobre los que planificar la actividad de animaci363n。    - Desarrollar los conocimientos necesarios con los que debe contar el animador para desarrollar la actividad adecuadamente。

以下是代码段:

$fp = fopen('data.xml', 'r');

$parser = xml_parser_create();
xml_set_element_handler($parser, 'start_element', 'end_element');
xml-set_character_data_handler($parser, 'character_data');
while(!feof($fp)) {
  $data = fgets($fp, 16384);
  if(!xml_parse($parser, $data, feof($fp))) {
    $error = 'xml file contains error on line     '.xml_get_current_line_number($parser).
      'with following problem     '.xml_error_string(xml_get_error_code($parser));
    die($error);
  }
}

function start_element($parser, $name, $attrs) {
  // something to do with the start element
}

function end_element($parser, $name, $attrs) {
  // something to do with end element
}

function character_data($parser, $data) {
  // something to do with the data
}

以下是示例xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<programas>
<programa id="1">
<objetivos><![CDATA[- Conocer las diferentes aproximaciones te363ricas     al envejecimiento y sus caracter355sticas m341s relevantes.
- Identificar las aspectos m341s importantes sobre los que planificar la     actividad de animaci363n.
- Desarrollar los conocimientos necesarios con los que debe contar el     animador para desarrollar la actividad adecuadamente.]]></objetivos>
</programa>
</programas>

有什么想法吗?

0 个答案:

没有答案