0

問題があります。渡された文字列変数に基づいて、php を使用して xml ファイルを編集する必要があります。

つまり、php には "true" または "false" のいずれかの値を取る文字列変数があり、次の xml ファイル コードを変更する必要があります。

<Parameter>             
     <ParameterName>Method1</ParameterName>                  
     <ParameterDescription>description</ParameterDescription>
     <ParameterValue type="bool">false</ParameterValue>
</Parameter>

<Parameter> 
     <ParameterName>Method2</ParameterName>       
     <ParameterDescription>description</ParameterDescription> 
     <ParameterValue type="bool">true</ParameterValue>
</Parameter> 

<Parameter>
     <ParameterName>Method3</ParameterName>
     <ParameterDescription>description</ParameterDescription>
     <ParameterValue type="float">0.025</ParameterValue> 
</Parameter>

最初の「ParameterValue」がデフォルトの「false」から変数の値に変更されるようにします(phpの変数は文字列で、xmlの変数はブール型であることに注意してください)。awk、sen、および dom に関する提案を調べましたが、あまり運がありませんでした。XML でこの 1 つの単語を変更する最も簡単な方法を期待しています!

ジェームズ

4

4 に答える 4

0

本当に必要でない場合は、php で dom を使用しないことをお勧めします...

たとえば、ドキュメントをゼロから作成する場合は、dom なしで実行できます。

Dom php を使用しない場合でも、生成されたファイルを dom で使用する必要がある場合は、エンコーディングに注意してください...その後、適切な xml ヘッダーを配置します... (それがないと、実際には @*!§& になります)

于 2012-08-03T12:59:25.753 に答える
0

Domdocument クラスを見たことがありますか? http://www.php.net/manual/es/class.domdocument.phpこのクラスを使用すると、XML を編集できます

于 2012-08-03T12:53:23.130 に答える
0

あなたは物事を複雑にしすぎています。XML は、いくつかのフォーマット要件を持つ文字列 (テキスト ファイル) です。他の文字列と同じように文字列を作成するだけですが、これらのフォーマット規則に注意してください。

これはPHPでうまくいくはずです。

$xml = <<<EOT
<Parameter>              
     <ParameterName>Method1</ParameterName>                   
     <ParameterDescription>description</ParameterDescription>
EOT

$xml .= '     <ParameterValue type="bool">' . $var . "false</ParameterValue>\n";
$xml .= <<<EOT;
</Parameter> 

<Parameter>  
     <ParameterName>Method2</ParameterName>        
     <ParameterDescription>description</ParameterDescription>  
     <ParameterValue type="bool">true</ParameterValue> 
</Parameter>  

<Parameter> 
     <ParameterName>Method3</ParameterName> 
     <ParameterDescription>description</ParameterDescription> 
     <ParameterValue type="float">0.025</ParameterValue>  
</Parameter> 
EOT;

次に、文字列をファイルに保存し (必要な他の XML を追加します!)、STDOUT に出力するか、さらに処理するために DOMDocument にロードします。あなたの選択。

于 2012-08-03T12:55:33.193 に答える
0

php には、 simplexmlDomなど、複数の xml ライブラリがあります。ノードを選択するために、どちらのライブラリも強力なツールである xpath をサポートしています。Dom の場合、これは次のようになります。

$the_variable = true;
$xml = simplexml_load_string($xml);
$elements = $xml->xpath('//Parameter/ParameterValue[text()="false"]'); // select paramter/parameterValue nodes where the text content is "false"
foreach ($elements as $elem) {
    $elem[0] = $the_variable; // will output "<ParameterValue>1</ParameterValue>"
    // $elem[0] = var_export($the_variable, true); // will output "<ParameterValue>true</ParameterValue>"
}   

print $xml->saveXML();
于 2012-08-03T13:05:13.620 に答える