Autor | Zpráva | ||
---|---|---|---|
Fastman Profil |
#1 · Zasláno: 8. 12. 2018, 22:44:36
Zdravím,
soubor (.XML), který musím přeložit, tak obsahuje přes 6 000 řádků, jenže se souborem se pracuje poměrně těžce: <phrase title="1_day_ago" addon_id="XF" version_id="1010010" version_string="1.1.0 Alpha"><![CDATA[One day ago]]></phrase> <phrase title="1_month_ago" addon_id="XF" version_id="1010010" version_string="1.1.0 Alpha"><![CDATA[One month ago]]></phrase> <phrase title="1_time" addon_id="XF" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[1 time]]></phrase> Jak získám samotný text do souboru? Jak tento text v přeložené podobě nahradím zpět na původní místo do .XML? One day ago One month ago 1 time Děkuji za odpověď. |
||
DarkMeni Profil |
Třeba přes SimpleXML
<pre> <?php $xml_phrases = '<phrase title="1_day_ago" addon_id="XF" version_id="1010010" version_string="1.1.0 Alpha"><![CDATA[One day ago]]></phrase> <phrase title="1_month_ago" addon_id="XF" version_id="1010010" version_string="1.1.0 Alpha"><![CDATA[One month ago]]></phrase> <phrase title="1_time" addon_id="XF" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[1 time]]></phrase>'; $phrases = simplexml_load_string("<phrases>$xml_phrases</phrases>", null, LIBXML_NOCDATA); foreach($phrases as $phrase) { echo $phrase.PHP_EOL; } ?> Nakonec teda asi pro nahrazení textového uzlu v xml bude potřeba použít spíš DOMDocument. Tak SimpleXML naonec umí taky upravovat obsah, akorát jsem k tomu špatně přistupoval. <pre> <?php $xml_phrases = '<phrase title="1_day_ago" addon_id="XF" version_id="1010010" version_string="1.1.0 Alpha"><![CDATA[One day ago]]></phrase> <phrase title="1_month_ago" addon_id="XF" version_id="1010010" version_string="1.1.0 Alpha"><![CDATA[One month ago]]></phrase> <phrase title="1_time" addon_id="XF" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[1 time]]></phrase>'; $phrases = simplexml_load_string("<phrases>$xml_phrases</phrases>", null, LIBXML_NOCDATA); for($i = 0; $i < $phrases->count(); $i++) { $phrases->phrase[$i] = $i; // misto $i za = by tu bylo nahrazeni na prelozeny text } var_dump($phrases); var_dump($phrases->phrase[0]); // atributy zustanou ?> |
||
Časová prodleva: 6 let
|
0