Ошибка неверного символа PHP

Я получаю эту ошибку при запуске этот код: Неустранимая ошибка: неперехваченное исключение 'DOMException' с сообщением 'Ошибка недопустимого символа' в test.php: 29 Трассировка стека: # 0 test.php (29): DOMDocument-> createElement ('1OhmStable', 'a') # 1 {main} добавлен в test.php в строке 29

Узлы, которые из исходного файла XML действительно содержат недопустимые символы, но поскольку я удаляю недопустимые символы из узлов, узлы должны быть созданы. Какой тип кодировки мне нужно сделать с исходным XML-документом? Нужно ли мне декодировать saveXML?

function __cleanData($c) 
{
    return preg_replace("/[^A-Za-z0-9]/", "",$c);
}
$xml = new DOMDocument('1.0', 'UTF-8');
$xml->load('test.xml');    
$xml->formatOutput = true; 

$append = array();
foreach ($xml->getElementsByTagName('product') as $product ) 
    {
        foreach($product->getElementsByTagName('name') as $name ) 
        {

            $append[] = $name;
        }
                foreach ($append as $a)  
                {
                    $nodeName = __cleanData($a->textContent);

                        $element = $xml->createElement(htmlentities($nodeName) , 'a');
                }
        $product->removeChild($xml->getElementsByTagName('details')->item(0));
        $product->appendChild($element);
    }

$result = $xml->saveXML();
$file = "data.xml";
file_put_contents($file,$result);

Вот как выглядит исходный XML:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/v1/xsl/xml_pretty_printer.xsl" type="text/xsl"?>
<products>
<product>
<modelNumber>M100</modelNumber>
<itemId>1553725</itemId>
<details>
  <detail>
    <name>1 Ohm Stable</name>
    <value>600 x 1</value>
  </detail>
 </details>
</product>
 </products>

Новый документ должен выглядеть так:

 <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/v1/xsl/xml_pretty_printer.xsl" type="text/xsl"?>
<products>
<product>
<modelNumber>M100</modelNumber>
<itemId>1553725</itemId>
  <1 Ohm Stable>

  </1 Ohm Stable>

  </product>
 </products>
7
задан Ryan 15 December 2011 в 17:42
поделиться