Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.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 使用item()将数据插入XML文档_Php_Html_Xml_Dom - Fatal编程技术网

Php 使用item()将数据插入XML文档

Php 使用item()将数据插入XML文档,php,html,xml,dom,Php,Html,Xml,Dom,我试图将数据插入XML文档中content\u集的一个特定节点,我想我必须使用item(),但每次提交表单时,数据都会放在文档末尾,但在关闭content\u集之前 PHP: //这就是我想根据html中select的值来选择将数据放入哪个节点的地方,0是doc_类型,1是video_类型 $file_type = $_POST['file_type']; $doc = new DOMDocument(); $doc->load( 'myfile_files.xml' ); $doc-&

我试图将数据插入XML文档中
content\u集
的一个特定节点,我想我必须使用
item()
,但每次提交表单时,数据都会放在文档末尾,但在关闭
content\u集之前

PHP:

//这就是我想根据html中select的值来选择将数据放入哪个节点的地方,0是doc_类型,1是video_类型

$file_type = $_POST['file_type'];
$doc = new DOMDocument();
$doc->load( 'myfile_files.xml' );

$doc->formatOutput = true;
$r = $doc->getElementsByTagname('content_sets')->item($file_type);

$b = $doc->createElement("article");

$titleName = $doc->createElement("doc_name");
$titleName->appendChild(
$doc->createTextNode( $Document_Array["name"] )
);

$b->appendChild( $titleName );


$r->appendChild( $b );

$doc->save("myfile_files.xml");
XML:


测试方案
tes_prop.docx
测试词文档。请在活动时移除。
word文档,测试,rfp模板,模板,rfp
01/26/2013 23:07
测试视频
test_video.avi
测试视频。请在活动时移除。
测试视频,视频,avi,xvid,svid avi
01/26/2013 23:07
HTML:

内容类型:
文件 视频 形象

我第三次尝试包含脚本中最重要的部分,但如果需要,我可以发布所有内容

谢谢

1)使用XPath查找要更改的节点

2) 拥有节点后,只需为其指定一个新值

3) 完成后再写文件

有关更多详细信息,请查看以下链接:


谢谢您提供的信息。我对php进行了编辑,以显示xml更新和保存的其余部分。我只是想知道,如果使用getElementsByTagname查找内容集的所有节点,然后使用要插入的项(0)查找第一个节点,为什么我的原始脚本不起作用?再次感谢!问:为什么getElementsByTagname()不起作用?有很多可能的原因。如果要调试,我会将复杂表达式分解为子表达式,然后“printf”每个子表达式的值,直到找到错误为止。例如,<代码>回声$FielyType
,然后<代码> PrimtTrr($doc-> GETelEngsByTyGNT(‘CordungSub’))
,等等。您也可以考虑为Eclipse获取一个IDE类PHP,或者尝试。更具体地说:(1)哪一个<代码> <代码>是要更改的?(2) 要插入哪个元素?
<?xml version="1.0" encoding="UTF-8"?>
<content_sets>
    <doc_types>

        <article>
            <doc_name>Test Proposal</doc_name>
            <file_name>tes_prop.docx</file_name>
            <doc_description>Test Word document. Please remove when live.</doc_description>
            <doc_tags>word document,test,rfp template,template,rfp</doc_tags>
            <last_update>01/26/2013 23:07</last_update>
        </article>
    </doc_types>



    <video_types>
        <article>
            <doc_name>Test Video</doc_name>
            <file_name>test_video.avi</file_name>
            <doc_description>Test video. Please remove when live.</doc_description>
            <doc_tags>test video,video, avi,xvid,svid avi</doc_tags>
            <last_update>01/26/2013 23:07</last_update>
        </article>
    </video_types>
</content_sets>
 <p>Content Type:<br/>
<select name="file_type">
    <option value="0">Document</option>
    <option value="1">Video</option>
    <option value="2">Image</option>
</select></p>