0

簡単な質問ですが、これを達成するためにさまざまな方法を試していましたが、成功しませんでした。xpathを使用して属性値を確認しようとしていますが、属性値が一致する場合は、xmlでそのタグのパラメーターを変更します。

これは機能します:

$obj= $xml->xpath('/document/item[@id = "a12sd"]');

属性値を確認するために変数を介して値を渡す必要があるため、これは機能しません

$checkID = "a12sd";

$obj= $xml->xpath('/document/item[@id = $checkID]');

この問題を修正する方法についての提案。

編集:

XMLファイル:

<?xml version="1.0" encoding="ISO-8859-1"?>
<document>
    <item id="a12sd">       
        <name>James</name>
        <pdf>0023.pdf</pdf>
    </item>
    <item id="rdf23">       
        <name>Alex</name>
        <pdf>0178.pdf</pdf>
    </item>
    <item id="2we34">       
        <name>Tom</name>
        <pdf>0886.pdf</pdf>
    </item>
    <item id="123de">       
        <name>Robby</name>
        <pdf>1239.pdf</pdf>
    </item>
</document>

PHPコード:

$id = "a12sd";
$xml = simplexml_load_file('items.xml');  

$who_is_who = $xml->xpath('/document/item[@id = "a12sd"]');             

$who_is_who[0]->name = "Arnold";

$xml->asXml("items.xml");

ありがとう

4

1 に答える 1

1

試す$obj= $xml->xpath('/document/item[@id="'.$checkID.'"]');

<?php
$id = "a12sd";
$xml = simplexml_load_file('items.xml');  

$who_is_who = $xml->xpath('/document/item[@id = "'.$id.'"]');             

$who_is_who[0]->name = "Arnold";

$xml->asXml("items.xml");

?>
于 2012-06-19T10:51:12.247 に答える