2016-10-12 2 views
1

Доброе утро, всем!текстовый файл в XML?

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

Текстовый файл

Barcode:       9091 
Update Bib Status:     Unable to update bib record: item barcode not found. 
Update Holding Status:    Unable to update holdings record: item barcode not found. 
Update Item Status:    Unable to update item record: item barcode not found. 

Item ID:       int 
Barcode:       int 
Title:        some stuff 
Enum/Chron:       
Call Number:      alphanumeric stuff 
Call Number Prefix:     
Holding Location:     some stuff 
Permanent Location:    some stuff 
Temporary Location:    some stuff 
Permanent Type:     some stuff 
Temporary Type:      
Media Type:       
Item Status:      Not Charged 
Statistical Categories:    
Magnetic Media:     No 
Sensitize:       Yes 

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

<item> 
<barcode>9091</barcode> 
<ItemID>1234</ItemID> 
<title>In the heart of the Sea</title> 
.... 
</item> 

Я могу получить файл для загрузки, однако я застрял на создание желательные элементы.

То, что я до сих пор ниже:

Текущий PHP код

if(isset($_POST["submit"])){ 
    $target_dir = "uploads/"; 
    $target_file = $target_dir . basename($_FILES["scans"]["name"]); //retain file after upload 
    $uploadOk=1; 
    move_uploaded_file($_FILES["scans"]["tmp_name"], $target_file); 
    echo "Your file has been successfully uploaded.<br>";//let user know file has been received. 
    $data=file_get_contents($target_file); //open uploaded file... 
    for ($i=0; $i<$data; i++){ 
     list($k, $v) = explode(":", $data); //split list into key value pairs 
    } 
    $xml= new XMLWriter("<holding></holding>");//start new xml 
+2

Вы что-то пробовали? –

+0

Пожалуйста, поделитесь своим кодом, где вы пытались преобразовать txt в xml. –

+0

Простите, что .. Я попал в подчинение преждевременно. Вернулся и отредактировал. – Duffman

ответ

0

Ваш основной цикл будет выглядеть примерно так:

$xml = new SimpleXMLElement('<xml/>'); 

foreach (exploe("\n", $data) as $row) 
{ 

    $rowData = explode(":", $row); 
    $xml->addChild(trim($rowData[0]), trim($rowData[1])); 

} 

echo "<pre>"; 
print_r($xml->asXML()); 
echo "</pre>"; 

Это расщепляет ваш текстовый файл в каждая строка прерывается, а затем использует все, что осталось от первого двоеточия в каждой строке, как имя узла, и все, что имеет право на первый двоеточие i n каждая строка как значение узла (или, точнее, все, что находится между первым двоеточием и вторым двоеточием, если оно существует в той же строке; вам нужно будет справиться с ними сами). Я добавил обрезку, чтобы убить ваши пробелы.