Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于PHP变量添加新的XML行?_Php_Xml - Fatal编程技术网

如何基于PHP变量添加新的XML行?

如何基于PHP变量添加新的XML行?,php,xml,Php,Xml,我对XML非常陌生,希望能在这个问题上得到指导或帮助,我已经尝试了几个小时 目标 我有一个简单的表单,其中有一些复选框。如果选中该复选框,我希望它向XML添加一些代码。这是我在处理第三方API时收到的一个示例文件 代码的第一部分是查找是否选中复选框。然后根据POST选项的值定义一个变量 <?php if (isset($_POST['submit'])) { $signature = $_POST['signature']; if($signature == "SO") { $s

我对XML非常陌生,希望能在这个问题上得到指导或帮助,我已经尝试了几个小时

目标

我有一个简单的表单,其中有一些复选框。如果选中该复选框,我希望它向XML添加一些代码。这是我在处理第三方API时收到的一个示例文件

代码的第一部分是查找是否选中复选框。然后根据POST选项的值定义一个变量

<?php if (isset($_POST['submit'])) {
$signature = $_POST['signature'];

if($signature == "SO") {
    $sig_option = htmlentities("<option-code>SO</option>");
}
else {
    $sig_option = "";
} } ?>

我不确定是否有一种方法可以基于PHP中的POST表单提交来做到这一点,但如果有人能提供帮助,我将不胜感激

不要在整个新节点上使用html权限。您将尝试插入
选项代码编码到html文档中,这将是一个语法错误。在节点的内容上使用html实体,例如
htmlentities('SO')
,但是xml标记本身无法编码。谢谢@MarcB。您是否知道一种方法可以让它正确地编码到代码的XML区域中?您现在所做的应该是正确的,只需确保插入了有效的XML,因为您的XML不是。您的打开/关闭标记不匹配:
v.s.
。再次感谢Marc。我上面的代码只是我实际脚本中的一个输入错误。API向我吐露了一个错误,仍然说“匿名类型的选项可能没有文本内容”。我不确定这意味着什么,但如果我硬编码,它工作得很好。当我尝试输入var{$sig_option}时,它向我吐出了这个错误@马尔克
    $xmlRequest = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
............................
<options>
    <option>
        <option-code>COV</option-code>
        <option-amount>{$covAmount}</option-amount>    
    {$sig_option}
    </option>
</options> 
.............