1

大きな Wordpress ページをカスタム CMS に移行しています。Wordpress からエクスポートされた大きな (20MB 以上の) XML ファイルから情報を抽出する必要があります。

  1. PHP での XML の経験がなく、ファイルの読み取りを開始する方法がわかりません。

  2. Wordpress ファイルには、次のような構造が含まれています。

    <excerpt:encoded><![CDATA[Encoded text here]]></excerpt:encoded>
    

PHPでこれを処理する方法がわかりません。

4

5 に答える 5

3

あなたはおそらくsimplexmlでうまくいくでしょう:

$xml = simplexml_load_file('big_xml_file.xml');
foreach ($xml->element as $el) {
    echo $el->name;
}

詳細については、 php.netを参照してください。

于 2013-01-08T18:05:09.660 に答える
1

PHP で XML を使用した経験はありません。

simplexml_load_file()またはをご覧くださいDomDocument

<excerpt:encoded><![CDATA[Encoded text here]]></excerpt:encoded>

これは、XML パーサーにとって問題にはなりません。ただし、WordPress によってエクスポートされたコンテンツには問題があります。たとえば、WordPress ショートコードを含めることができます。これは、展開された形式ではなく、生の形式で表示されます。

より良いアプローチ

移行先が WordPress 機能からのエクスポートをサポートしているかどうかを確認します。Drupal、Joomla、Octopress など、他の多くのシステムも同様です。

于 2013-01-08T18:06:11.400 に答える
1

アダムは絶対に正しいですが、彼の答えにはもう少し詳細が必要でした. これは、簡単なスクリプトです。

$xmlfile  = simplexml_load_file('yourxmlfile.xml');
foreach ($xmlfile->channel->item as $item) {
    var_dump($item->xpath('title'));
    var_dump($item->xpath('wp:post_type'));
}
于 2019-10-14T01:10:49.717 に答える
1

残念ながら、XML の例はうまくいきませんでした。

PHP5 には、XML を操作するための 2 つの拡張機能 ( DOMと " SimpleXML ") が付属しています。
一般的に言えば、SimpleXML は 2 つの中でよりアクセスしやすいライブラリであるため、最初に SimpleXML を検討することをお勧めします。

手始めに、「simplexml_load_file()」を使用して XML ファイルをオブジェクトに読み込み、さらに処理します。
また、「php.net の SimpleXML 基本例ページ」も参照してください。

于 2013-01-08T18:23:07.910 に答える