2016-07-01 20 views
0

XML文書内のネストされた名前空間プロパティの値をEPPサービスに送信する前に変更する必要があります。XML名前空間プロパティの値を変更する

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd"> 
    <command> 
    <info> 
     <host:info xmlns:host="urn:ietf:params:xml:ns:host-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:host-1.0 host-1.0.xsd"> 
     <host:name>ns1.example.test.example.com</host:name> 
     </host:info> 
    </info> 
    <clTRID>NORID-14373-1207137695427775</clTRID> 
    </command> 
</epp> 

上記のXMLでは、host:name要素の値を変更する必要があります。私はPHPのsimplexml_load_stringを使って、以下に示すようにXMLスキーマの値を最初に変更しています。

$xml = simplexml_load_string(file_get_contents($fn)); 
$xml->command->clTRID = GUID(); // This works perfectly 
$xml->command->info->name = 'somename'; // Does not work :) 

これを行う正しい方法は何ですか。

答えて

0

私は

echo $xml->command->info->children('host', true)->info->name; 

私は

$xmls = '<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd"> 
    <command> 
    <info> 
     <host:info xmlns:host="urn:ietf:params:xml:ns:host-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:host-1.0 host-1.0.xsd"> 
     <host:name>ns1.example.test.example.com</host:name> 
     </host:info> 
    </info> 
    <clTRID>NORID-14373-1207137695427775</clTRID> 
    </command> 
</epp>'; 

$xml = simplexml_load_string($xmls); 
$xml->command->clTRID = 'something'; // This works perfectly 
echo $xml->command->info->children('host', true)->info->name; 

$xml->command->info->children('host', true)->info->name = 'some new name'; 
echo $xml->command->info->children('host', true)->info->name; 
をしようとしたトータル簡単なコードを、それを使用する方法として、参照用データをエコーし​​ています次のコード

注意を使用します