2

だから私はこのXMLを持っています:の結果var_dump

string '
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<data>
<entry key="message Type">
<![
    CDATA[
        urgent
    ]
]></entry><entry key="message Title"><![
    CDATA[
        teswt
    ]
]></entry><entry key="message Body"><![
    CDATA[
        teasd
    ]
]></entry><entry key="message Priority"><![
    CDATA[
        1
    ]
]></entry></data>
' (length=260)

私のコードは次のようになります。

$xml = simplexml_load_string($tablerow['data']);
$inputs = $xml->xpath("/schema/user_input[@type!='hidden']/input|/schema/input");
foreach($inputs as $cur_input) {

        $cur_input_name = (string)$cur_input['name'];
        $cur_input_value = $task_input_values[$cur_input_name];
        $input_name = isset($cur_input['label']) ? (string)$cur_input['label'] : $cur_input['name'];
}
        var_dump($tablerow['data']);

$tablerow['data']DB からの XML です。これから値を取得する方法はありmessage Titleますか??

ありがとう!

4

2 に答える 2

2

あなたが使用している XPath 式は、あなたが投稿した XML ドキュメントと似ていないため、探している値をどのように見つけることができるかわかりません。以下は、サンプル XML ドキュメントから「testwt」を抽出します。

<?php
$xml = simplexml_load_string($tablerow['data']);
$title = '';

foreach ($xml->entry as $entry) {
    if ((string) $entry['key'] == 'message Title') {
        $title = (string) $entry;
        break;
    }
}

echo $title;
?>

編集: XPath ではなく SimpleXML の「スタイル」を使用するように更新されました。

于 2012-09-21T13:15:15.083 に答える
0

XML は適切な方法である必要があります。

これをチェックして

    <?php
    $xmlString = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
            <data>
                <entry key="message Type">
                    <![CDATA[urgent]]>
                </entry>
                <entry key="message Title">
                    <![CDATA[teswt]]>
                </entry>
                <entry key="message Body">
                    <![CDATA[xxxxx]]>
                </entry>
                <entry key="message Priority">
                    <![CDATA[1]]>
                </entry>
            </data>';

    $xml = simplexml_load_string($xmlString);

    foreach ($xml->entry as $entry)
    {   
       echo $entry['key']."<br/>";
    }
    ?>
于 2012-09-21T13:35:10.510 に答える