Изменить разделитель полей по умолчанию XMLWriter

Я хочу получить массу данных с сайта, выбрать определенные его разделы, преобразовать их в формат XML, а затем импортировать в базу данных (этот вопрос касается раздела формата XML)

полученные данные представляют собой файл Raw Text, который, однако, делится на множество различных категорий. Разделитель полей, используемый в этом файле, - ":", и, судя по моему текущему опыту, XMLWriter любит, чтобы разделитель был ","

Есть ли способ изменить использование Separator XMLWriter?

Текущий код XML:

    <?php
$data = fopen('thing.txt', 'r');

    $xml = new XMLWriter;
    $xml->openURI('php://output');
    $xml->setIndent(true); // makes output cleaner

    $xml->startElement('Controllers');
    while ($line = fgetcsv($data)) {
       $xml->startElement('Current');
       $xml->writeElement('Callsign', $line[0]);
       $xml->writeElement('CID', $line[1]);
       $xml->writeElement('Name', $line[2]);
       $xml->endElement();
    }
    $xml->endElement();

Спасибо!


person JoshuaMicallef    schedule 27.06.2018    source источник


Ответы (1)


XMLWriter - это часть, которая создает вывод, она ничего не знает о формате файла, который вы читаете. Это будет связано с вызовом fgetcsv(). Третий параметр, который является разделителем, который вы хотите использовать, поэтому измените строку чтения на ...

while ($line = fgetcsv($data, 0, ':')) {
person Nigel Ren    schedule 27.06.2018
comment
Это сработало! Большое спасибо! - person JoshuaMicallef; 27.06.2018