Определение переменных или констант в XMLwriter PHP - PullRequest
0 голосов
/ 08 ноября 2018

Я новичок в PHP. Использование xmlwriter для создания XML-файла. У меня есть код ниже.

$xml = new XMLWriter(); 
$xml->openURI('test.xml');

$xml->setIndent(true);
$mmmid = '1981';


$xml->startDocument('1.0', 'UTF-8');
$xml->text('<raml xmlns="raml21.xsd" version="2.1">');
$xml->text('    <cmData scope="all" type="plan">'); 
$xml->text('        <header>');

$xml->text('            <log dateTime="2012-11-05T12:27:50+02:00" appInfo="Manager" user="WebUI" appVersion="4.5133.90" action="created"/>');

$xml->text('        </header>');    

$xml->text('                    <managedObject class="MRBTS" distName="IDENTITY-'$mmmid'" operation="create" version="1803">');
$xml->text('                    <p name="btsName">B1123</p>');
$xml->text('                </managedObject>');

Я хочу определить mmmid в выходном файле xml, поэтому он будет отображаться в выходных данных distName = "IDENTITY-1981"

Как я могу определить переменную mmmid в коде и ожидаемую распечатку при выводе текста выше?

Большое спасибо, Br, FM

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

При объединении переменной со строками в PHP есть несколько способов сделать это.

Используйте двойные кавычки " в качестве окружающих символов

При использовании двойных кавычек " в PHP вы можете использовать переменные внутри строки как обычно

$foo = 4;
echo "Hello $foo";

выход :

Hello 4

Это даст следующее решение вашей проблемы:

# Note that you need to escape the original double quotes with a backslash
$xml->text("<managedObject distName=\"IDENTITY-$mmmid\" operation=\"create\" version=\"1803\">');

Конкатенация с точкой .

Другим способом связывания переменной с текстом является использование точки . между переменной и строкой (это также работает только со строками или только с переменными). Для этого метода вы можете использовать одинарные ' или двойные кавычки ".

$foo = 4;
echo 'Hello ' . $foo;

выход

Hello 4

И с помощью этого метода это даст вам

$xml->text('<managedObject distName="IDENTITY-' . $mmmid . '" operation="create" version="1803">');
0 голосов
/ 08 ноября 2018

Это было бы:

$xml->text('                    <managedObject class="MRBTS" distName="IDENTITY-' . $mmmid . '" operation="create" version="1803">');

Вы объединяете строки в PHP с помощью оператора ., см. Руководство PHP для строк

...