PHP DOM +在xml中删除特定节点

发布于 2024-11-19 15:06:38 字数 793 浏览 0 评论 0原文

我想根据我在 xml 中传递的 id 删除 XML 中的特定节点。 以下似乎不起作用,请帮助我。

$id  = $_GET['nodeId'];
$dom = new DOMDocument;
$dom->load('Seat_matrix.xml');
$xpath = new DOMXPath($dom);
$query = sprintf('/location/cubicle[./id = "%d"]', $id);
foreach($xpath->query($query) as $cubicle) {
    $record->parentNode->removeChild($cubicle);
}
$dom->save("Seat_matrix.xml");

XML文件

<location>

    <cubicle>
        <id> 6121</id>
        <status>2</status>
        <shift1>  
            <Employee1>Tom</Employee1>
        </shift1>           
        <shift2>  
            <Employee2>arum</Employee2>
        </shift2>
    </cubicle>
</location>

I want to delete particular node in XML based on the id I passed in the xml.
The below seems not working please help me.

$id  = $_GET['nodeId'];
$dom = new DOMDocument;
$dom->load('Seat_matrix.xml');
$xpath = new DOMXPath($dom);
$query = sprintf('/location/cubicle[./id = "%d"]', $id);
foreach($xpath->query($query) as $cubicle) {
    $record->parentNode->removeChild($cubicle);
}
$dom->save("Seat_matrix.xml");

XML file

<location>

    <cubicle>
        <id> 6121</id>
        <status>2</status>
        <shift1>  
            <Employee1>Tom</Employee1>
        </shift1>           
        <shift2>  
            <Employee2>arum</Employee2>
        </shift2>
    </cubicle>
</location>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千年*琉璃梦 2024-11-26 15:06:39

您将 sprintf 与 %d 一起使用,但元素节点包含“ 6121”(注意开头的空格)。

var_dump(sprintf('%d', ' 6121') === ' 6121'); // FALSE

请改用 %s。还。没有 $record 变量,因此您必须将代码更改为

$cubicle->parentNode->removeChild($cubicle);

You are using sprintf with %d but the element node contains " 6121" (mind the space in the beginning).

var_dump(sprintf('%d', ' 6121') === ' 6121'); // FALSE

Use %s instead. Also. there is no $record variable, so you have to change the code to

$cubicle->parentNode->removeChild($cubicle);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文