@illaaa

Как сформировать xml с помощью sql?

У меня есть xml документ подобного вида:
<HeadNode>
    <information>
      <lastName>Иванов</lastName>
      <firstName>Иван</firstName>
      <birthDate>1900-01-01</birthDate>
      <gender>M</gender>
    </information>
    <documents>
      <document>
        <type>Passport</type>
        <number>123456</number>
        <issueDate>2000-01-01</issueDate>
      </document>
    </documents>
    <contacts>
      <contact>
        <type>Mphone</type>
        <phoneNumber>1234567890</phoneNumber>
      </contact>
      <contact>
        <type>Hphone</type>
        <phoneNumber>0987654321</phoneNumber>
        <region>
          <code>Odessa_region</code>
        </region>
        <city>
          <code>Odessa</code>
        </city>
      </contact>
      <contact>
        <type>Work</type>
        <region>
          <code>Odessa_region</code>
        </region>
        <city>
          <code>Odessa</code>
        </city>
      </contact>
    </contacts>
 </HeadNode>


Каким образов я могу сформировать его?
Если возможно, дайте какие-то ресурсы для изучения
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 3
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
Ответ написан
Комментировать
@Antoshka1509
$dbc = mysqli_connect($host, $username, $password, $database);
$data = mysqli_query($dbc, "SELECT * FROM users");
while ($row = mysqli_fetch_array($data)) {
    $res .= "<HeadNode>
    <information>
      <lastName>".$row['name']."</lastName>
      <firstName>".$row['lastname']."</firstName>
      <birthDate>".$row['bday']."</birthDate>
      <gender>".$row['gender']."</gender>
    </information>
    <documents>
      <document>
        <type>Passport</type>
        <number>".$row['number']."</number>
        <issueDate>".$row['date']."</issueDate>
      </document>
    </documents>
    <contacts>
      <contact>
        <type>Mphone</type>
        <phoneNumber>".$row['mphone']."</phoneNumber>
      </contact>
      <contact>
        <type>Hphone</type>
        <phoneNumber>".$row['hphone']."</phoneNumber>
        <region>
          <code>".$row['region']."</code>
        </region>
        <city>
          <code>".$row['city']."</code>
        </city>
      </contact>
      <contact>
        <type>Work</type>
        <region>
          <code>".$row['region']."</code>
        </region>
        <city>
          <code>".$row['city']."</code>
        </city>
      </contact>
    </contacts>
 </HeadNode>";
}
mysqli_close($dbc);
echo $res;
Ответ написан
Комментировать
@d-stream
Готовые решения - не подаю, но...
Собственно select ... from … for xml
Ну и дальше по https://docs.microsoft.com

правда нюансик: начинается это с версии 2008, что иногда может оказаться критичным для мультиверсионных реализаций
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы