是否有人遇到过一种方法,可以强制PHP SimpleXMLElement节点名为大写?

是否有人遇到过一种方法,可以强制PHP SimpleXMLElement节点名为大写?,php,simplexml,xmlnode,addchild,Php,Simplexml,Xmlnode,Addchild,API集成文档指定所有节点名称都区分大小写。我使用的是PHP SimpleXMLElement,我没有看到强制使用大写节点名的方法。是否有人遇到了强制节点名称大写的方法 $xmlstr = '<Request>'. '</Request>'; $sxe = new SimpleXMLElement($xmlstr); $authentication = $sxe->addChild('Authentication'); $authenticat

API集成文档指定所有节点名称都区分大小写。我使用的是PHP SimpleXMLElement,我没有看到强制使用大写节点名的方法。是否有人遇到了强制节点名称大写的方法

 $xmlstr = '<Request>'.
        '</Request>';


$sxe = new SimpleXMLElement($xmlstr);
$authentication = $sxe->addChild('Authentication');
$authentication->addChild('Version', '2.0');
$processid = $sxe->addChild('Process ID=importSale');
$importsale = $processid->addChild('importSale');
$importsale->addChild('SCRIPTCODE', '<![CDATA[SCRIPT001]]>');
$importsale->addChild('PRODID','<!CDATA[DNTMAN]]>');
echo $sxe->asXML();
$xmlstr=''。
'';
$sxe=新的simplexmlement($xmlstr);
$authentication=$sxe->addChild('authentication');
$authentication->addChild('Version','2.0');
$processid=$sxe->addChild('processid=importSale');
$importsale=$processid->addChild('importsale');
$importsale->addChild('SCRIPTCODE','');
$importsale->addChild('PRODID','');
echo$sxe->asXML();

在“查看源代码”中查看时,“SCRIPTCODE”和“PRODID”都是小写的。我该如何强制将其大写?

理论上,您提供的代码已经完成了这项工作!默认情况下,添加到simpleXMLElement的所有子元素将保留其原始大小写

$sxe = new SimpleXMLElement('<Request></Request>');
$authentication = $sxe->addChild('Authentication');
$authentication->addChild('Version', '2.0');
$processid = $sxe->addChild('Process ID=importSale');
$importsale = $processid->addChild('importSale');
$importsale->addChild('SCRIPTCODE', '<![CDATA[SCRIPT001]]>');
$importsale->addChild('PRODID','<!CDATA[DNTMAN]]>');
echo $sxe->asXML();
$sxe=新的SimpleXMLElement(“”);
$authentication=$sxe->addChild('authentication');
$authentication->addChild('Version','2.0');
$processid=$sxe->addChild('processid=importSale');
$importsale=$processid->addChild('importsale');
$importsale->addChild('SCRIPTCODE','');
$importsale->addChild('PRODID','');
echo$sxe->asXML();
执行代码得到的结果如下:

<Request>
    <Authentication>
        <Version>2.0</Version>
    </Authentication>
    <Process>
        <Process ID=importSale>
            <SCRIPTCODE><![CDATA[SCRIPT001]]></SCRIPTCODE>
            <PRODID><!CDATA[DNTMAN]]></PRODID>
        </importSale>
    </Process>
</Request>

2
SCRIPTCODE
PRODID
都保持大写


注意:这不是将cdata添加到节点值的合适方法。。。这将导致html实体转换,如
!CDATA[]

不要查看源代码,而是尝试使用以下命令将输出回显到屏幕上:

echo htmlentities($sxe->asXML());

它们在我的服务器上是大写的,在这里也是一样的:您可以尝试以下方法而不是查看源代码:echo htmlentities($sxe->asXML());您当时使用哪个浏览器查看源代码?不知道某些浏览器显示的内容与源代码不同。