Heim  >  Artikel  >  Backend-Entwicklung  >  修改xml文件值的问题

修改xml文件值的问题

WBOY
WBOYOriginal
2016-06-23 14:03:03890Durchsuche

我想改变question为22222的值,这个值是在前台传入的,不过我不知道应该如何传,应该如何操作了?最好是用DOMDocument类来操作

<?xml version="1.0" encoding="utf-8"?><parent>  <title>3</title>  <author>admin</author>  <contentall>    <subject>      <question>111111</question>      <option>        <oid>A</oid>        <content>11</content>      </option>      <option>        <oid>B</oid>        <content>22</content>      </option>      <option>        <oid>C</oid>        <content>33</content>      </option>      <option>        <oid>D</oid>        <content>44</content>      </option>    </subject>    <subject>      <question>22222</question>      <option>        <oid>A</oid>        <content>22</content>      </option>      <option>        <oid>B</oid>        <content>11</content>      </option>      <option>        <oid>C</oid>        <content>44</content>      </option>      <option>        <oid>D</oid>        <content>33</content>      </option>    </subject>    <subject>      <question>33333</question>      <option>        <oid>A</oid>        <content>444</content>      </option>      <option>        <oid>B</oid>        <content>222</content>      </option>      <option>        <oid>C</oid>        <content>333</content>      </option>      <option>        <oid>D</oid>        <content>2111</content>      </option>    </subject>  </contentall></parent>


回复讨论(解决方案)

你想怎么改?

$fn = '你的xml文件名';$tag = 'question'; //待修改的节点名$val = '22222'; //待修改的节点值,和 $tag 一起用于定位$replace = 'xxx'; //修改后的值$xml = simplexml_load_file($fn);$p = $xml->xpath("//{$tag}[.='$val']");$p[0][0] = $replace;$xml->asXML($fn); //写回去

PHP code?12345678$fn = '你的xml文件名';$tag = 'question'; //待修改的节点名$val = '22222'; //待修改的节点值,和 $tag 一起用于定位$replace = 'xxx'; //修改后的值$xml = simplexml_load_file($fn);$p = $xml->xpath("//{$tag}[.=……

$p[0][0]是什么意思啊?

xpath 返回的是所有符合条件节点数组(是一个二维的对象数组)

$p [0][0] 表示第一个匹配到的节点
$p[0] [0] 表示节点中的第一个元素

xpath 返回的是所有符合条件节点数组(是一个二维的对象数组)

$p[0][0] 表示第一个匹配到的节点
$p[0][0] 表示节点中的第一个元素
那按照你这样说的话不就是匹配了question为111111,不是question为222222吧

$xml->xpath("//{$tag}[.='$val']");
实际执行的是
$xml->xpath("//question[.='22222']");

所以对于你的数据,只会匹配到 22222

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:apache子域名设置Nächster Artikel:查询数组中摸个字段的个数?