2017-03-02 4 views
0

Mein Ziel ist es, "Herkunft-" aus der URL in einem untergeordneten Element in meiner sitemap.xml-Datei zu entfernen.PHP - entfernen Sie bestimmten Text aus Element in XML-Datei

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
    <url> 
    <loc> 
    http://origin-www.customURL.com 
    </loc> 
    <lastmod>2017-03-02</lastmod> 
    <changefreq>daily</changefreq> 
    <priority>0.0</priority> 
    </url> 
    <url> 
    <loc> 
    http://origin-www.customURL.com/11/2013/ 
    </loc> 
    <lastmod>2017-03-02</lastmod> 
    <changefreq>daily</changefreq> 
    <priority>0.0</priority> 
    </url> 
    <url> 
    <loc> 
    http://origin-www.customURL.comshopper-oxblood/11/2013/ 
    </loc> 
    <lastmod>2017-03-02</lastmod> 
    <changefreq>daily</changefreq> 
    <priority>0.0</priority> 
    </url> 
</urlset> 

Der PHP-Code ich verwende versagt die foreach-Schleife laufen und wird die Datei ohne Änderungen ausgibt.

Dies ist der PHP-Code, den ich in einem Versuch, das Element zu ziehen und „str_replace“ entfernen „herkunfts“ verwenden:

<?php 

$xml = simplexml_load_file("sitemap.xml"); 

foreach ($xml->urlset->url->loc as $URL) 
{ 
     $incorrectTextURL = array("origin-"); 
     $onlyconsonants = str_replace($incorrectTextURL, "", $URL); 
} 
echo $xml->asXml(); 
?> 

Ich weiß, dass ich etwas falsch hier tue, die "foreach" -Anweisung bleibt fehlerfrei und es werden keine Änderungen an der Datei vorgenommen.

schätzen nicht nur die Einsicht

Danke, Chris

Antwort

0

Versuchen $ URL durch Verweis in Ihrem foreach-Anweisung vorbei, also &$URL und tun wie so:

foreach ($xml->urlset->url->loc as &$URL) 
{ 
     $incorrectTextURL = array("origin-"); 
     $URL = str_replace($incorrectTextURL, "", $URL); 
} 

Spaziert Sie looping Ihre foreach, aber nicht die tatsächliche Xml nodeValue

+0

Schätzen Sie Ihren Einblick, macht Sinn, aber es tut Scheint, ich laufe in denselben Fehler. gibt es die folgende Fehlermeldung: PHP Warning: Invalid argument für foreach geliefert() in remove_text_from_url.php auf Linie 5 Linie verwiesen wird, ist die "foreach" line -> foreach ($ xml-> urlset-> URL- > loc als $ URL) – CLaB

+0

Entschuldigung Ich habe keine + + $ URL in der foreach-Empfehlung eingefangen, verändert sich leider nicht viel, da ich einmal einen anderen Fehler in Bezug auf das hinzugefügte Zeichen bekomme: PHP Fataler Fehler: Ein Iterator kann nicht mit foreach verwendet werden – CLaB

+0

In welcher Version von PHP sind Sie? In neueren Versionen von PHP (5.6+ glaube ich) können Sie als Referenz weitergeben, vorausgesetzt, Ihr Fehler liegt daran, dass Sie auf 5.3.x – skrilled

Verwandte Themen