PHP ungültiges Zeichen Fehler

Ich bin immer diese Fehlermeldung, wenn dieser code ausgeführt:
Fatal error: Uncaught exception 'DOMException' with message 'Invalid Character Error' in test.php:29 Stack trace: #0 test.php(29): DOMDocument->createElement('1OhmStable', 'a') #1 {main} thrown in test.php on line 29

Den Knoten, die aus dem original-XML-Datei enthält ungültige Zeichen, aber da bin ich Strippen die ungültigen Zeichen entfernt die Knoten, die Knoten erstellt werden soll. Welche Art von Codierung brauche ich, wenn ich auf die original-XML-Dokument? Brauche ich zum entschlüsseln des 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);

Dies ist, was die original-XML sieht wie folgt aus:

<?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>

Wird das neue Dokument sollte Aussehen wie dieses:

 <?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>
Sie sind wie sich selbst zu reden, wo ist die XML?
Einfach aufstellen
Warum postest du die saubere version?
Was meinst du?
Der xml-Code gepostet wird, nachdem Sie entfernt die ungültigen Zeichen? Warum nicht buchen Sie die original-version ?

InformationsquelleAutor Ryan | 2011-12-15

Schreibe einen Kommentar