在 XMLwriter 中定义变量或常量 PHP

Defining Variables or constant in XMLwriter PHP

我是 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>');

我想在xml文件的输出中定义mmid,所以它会出现在输出distName="IDENTITY-1981"

如何在代码中定义变量 mmmid 并预期在上面的文本输出中打印?

非常感谢, Br,FM

就是这样:

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

您通过 . 运算符连接 PHP 中的字符串,请参阅字符串

上的 PHP manual

将变量与 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">');