создание xml с php и опцией if if

0

Я создаю XML файл адресной книги из базы данных MySQL, все работает нормально, но у меня есть тег раздела, который получает первую букву фамилии и всплывает в этом теге. Я только хочу, чтобы это отображалось, если оно изменилось, но почему-то мой мозг сегодня не работает!

Текущий код:

<?php

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
echo "<data>";

do {

    $char = $row_fetch["surname_add"];
    $section = $char[0];

    //if(changed???){
        echo "<section><character>".$section."</character>";
    //}
    echo "<person>";
    echo "<name>".$row_fetch["firstname_add"]." ".$row_fetch["surname_add"]."</name>";
    echo "<title>".$row_fetch["title_add"]."</title>";
    echo "</person>";

    //if(){
        echo "</section>";
    //}


} while ($row_fetch = mysql_fetch_assoc($fetch));

echo "</data>";

?>

Любая помощь в этом приветствии, не знаю, почему я не могу думать об этом!

Теги:

2 ответа

1
Лучший ответ

И если вы все еще хотите генерировать XML вручную, я полагаю, что-то вроде этого будет работать:

$section = "NoSectionStartedYet";
while ($row_fetch = mysql_fetch_assoc($fetch)) {

    $char = $row_fetch["surname_add"];
    if ($char[0] != $section)
    {
        if ($section != "NoSectionStartedYet")
        {
            echo "</section>";
        }
        $section = $char[0];
        echo "<section><character>".$section."</character>";
    }

    echo "<person>";
    echo "<name>".$row_fetch["firstname_add"]." ".$row_fetch["surname_add"]."</name>";
    echo "<title>".$row_fetch["title_add"]."</title>";
    echo "</person>";

}
echo "</section>";
  • 0
    Имейте в виду, что в этом случае у вас нет гарантии, что на выходе будет действительный XML. Например, это может произойти, если вы неправильно сформировали html в базе данных, например $ row_fetch ["title_add"] = 'title <b>'
1

Чтобы убедиться, что ваш XML действителен, лучше построить дерево DOM, вот пример из руководства PHP:

<?php

$doc = new DOMDocument;

$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);

echo $doc->saveXML();
?> 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню