-1

私はPHPの専門家ではないので、これについて助けが必要です。私はいくつかのPHPアプリケーションで作業しています。XML データ形式の STRING フィールド 1 が 1 つあります。

$field1='<messages>
  <person id="501">
    <name>Jan</name>
    <surname>Scott</surname>
  </note>
  <person id="502">
    <name>Mark</name>
    <surname>Cruise</surname>
  </person>
</messages>';

この外観を含む field2 (HTML タイプ) テーブルを配置する必要があります。

NAME   SURNAME

JAN    SCOTT
MARK   CRUISE

その最初のフィールドから値を持つ2番目のフィールドまで解析するphpスクリプトは何ですか?

ありがとうございました!!

4

2 に答える 2

1
    <?php
$xmlString = '<messages>
  <person id="501">
    <name>Jan</name>
    <surname>Scott</surname>
  </person>
  <person id="502">
    <name>Mark</name>
    <surname>Cruise</surname>
  </person>
</messages>';


$xml = new SimpleXMLElement($xmlString);
echo "<table border='1' width='50%'>";
echo "<tr>
        <td>Id</td>
        <td>Name</td>
        <td>SurName</td>
    </tr>";
foreach ($xml as $element)
{
    echo "<tr>";
    echo "<td>";
    echo $element["id"];
    echo "</td>";
    foreach ($element as $key => $val)
    {
        echo "<td>";
        echo $val;
        echo "</td>";
    }
    echo "</tr>";
}
echo "</table>";
?>

このコードは、xml を基本的な html テーブルに変換します。

于 2013-03-15T14:06:38.880 に答える
1

XML 文字列を簡単にトラバースするには、 SimpleXMLを参照してください。次に、次のようなものでhtml出力を簡単に構築できます

$xml = new SimpleXMLElement($field1);

$html = "<table>";
$html .= "<tr><td>NAME</td><td>SURNAME</td></tr>";

foreach($person in $xml->person) {
  $html .= "<tr><td>" . $person->name . "</td><td>" . $person->surname . "</td></tr>";
}

$html .= "</table>";

コードは試していませんが、基本的な考え方はそのようなものです。大文字が必要な場合は、それを追加します。

2番目... PHPは通常、キーワードvarを変数に追加しなくなり、すべての変数名の前に$を追加する必要があります。また、文字列は引用符で囲む必要があります。これだけ

$field1 = '<messages><person id="501"><name>Jan</name><surname>Scott</surname></note><person id="502"><name>Mark</name><surname>Cruise</surname></person></messages>';

複数行の文字列が必要な場合は、HEREDOC 構文を確認する必要があります。

変数の前にvarを追加する必要がある場合は、かなり古いバージョンの PHP を使用している可能性があり、私のコメントのいくつかが適用されない可能性があります。その場合は、PHP インストールを更新するか、実行している PHP のバージョンをここに戻してください。

于 2013-03-15T13:46:05.260 に答える