Я новичок в 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
При конкатенации переменной со строками в 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">');
Это было бы это:
$xml->text(' <managedObject class="MRBTS" distName="IDENTITY-' . $mmmid . '" operation="create" version="1803">');
Вы объединяете строки в PHP через .
оператор, см. Руководство по PHP на струнах