PHP找到一个子节点

时间:2014-02-05 07:04:48

标签: php xml

我有一个XML文件 - 例如:

<slideshow>
    <image src="myPhotos/1.jpg" desc="Sample" />
    <image src="myPhotos/2.jpg" desc="Sample" />
    <image src="myPhotos/3.jpg" desc="Sample" />
    <image src="myPhotos/4.jpg" desc="This is image 4" />
    <image src="myPhotos/5.jpg" desc="This is image 5" />
    <image src="myPhotos/6.jpg" desc="This is image 6" />
    <image src="myPhotos/7.jpg" desc="This is image 7" />
    <image src="myPhotos/8.jpg" desc="This is image 8" />
</slideshow>


好吧,我需要帮助的是(没有解释我的整个项目)。我希望PHP通过它的属性在XML文件中查找子节点,该属性为“ src ”。


然后一旦找到正确的属性 - 那么我需要跳转到相同的孩子中的“ desc ”,但!并且只更改“ desc ”属性。


我使用下面的代码 - 但唯一的问题是,如果我的属性值相同,它会更改所有“ desc ”。



这是我的完整PHP脚本:

<?php

    $currentTextHeading = $_POST['currentTextHeading'];
    $newTextHeading = $_POST['newTextHeading'];

    $dom = new DomDocument;
    $dom->load('myPhotos.xml');

    $xpath = new DomXPath($dom);

    $cAttribs = $xpath->query('//*[@desc= "'.$currentTextHeading.'"]');
    foreach ($cAttribs as $entry) {
        $entry->setAttribute('desc', $newTextHeading);
    }

    $dom->save('myPhotos.xml');

    header('Location: ' . $_SERVER['HTTP_REFERER']);
    die();

?>


打破它......

我想首先查找“ src ”属性,因为该属性将始终是唯一的,然后更改该子项的“ desc ”并且仅更改该属性!


用户将通过html文本表单更改这些“属性”。

0 个答案:

没有答案