2

誰かが私を正しい方向に向けてくれることを願っています。私は PHP アプリを作成しています。これは、基本的に約 10 ~ 15 個の xml フィードをプルし、それぞれに約 30 個のノードがあり、それぞれに異なる形式があり、さまざまなカテゴリにクラスター化されます。これまでのところ、XSLT を介して各フィードを標準化された形式 (xml 要素はすべての出力フィールドで標準化されています) に変換/マップするための php を作成することができました。簡単なインクルードを実行して、それらすべてをインクルードして単一のフィードを出力することができます。問題は、フィードがノードあたり 17 の要素を持つ約 400 ~ 500 ノードになり、ロードに永遠にかかることです。XMLReader/XMLWriter コマンドを試しましたが、XML Writer でエラーが発生しています。以下のコードを使用しています

$xml1 = new XMLReader();
$xml1->open('convert1.php');

$xml2 = new XMLReader();
$xml2->open('convert2.php');
    $name = 'xmlroot';

    $write = new XMLWriter();
    $write->startElement($name);

これは私が得るエラーです:

Warning: XMLWriter::startElement() [xmlwriter.startelement]: Invalid or unitialized XMLWriter object in C:\wamp\www\mergetest\merge1.php on line 22

私のXMLは次のように構成されています:

<xmlroot>
<xmlnode>
<xmlelement></xmlelement>
</xmlnode>
</xmlroot>

PHP コードを変換します。

    <?php

$xml = new DOMDocument();
$xml->load('xmlfeed');

$xsl = new DOMDocument;
$xsl->load('xsl.xsl');

$proc = new XSLTProcessor();
$proc->importStyleSheet($xsl);

echo $proc->transformToXML($xml);

私はまだPHPに慣れていないので、初心者の間違いや何かを含めていない場合は、炎上しないでください笑私はただ学ぼうとしています. PHPリファレンス/チュートリアルを見てみましたが、役に立たないようです。

4

1 に答える 1

1

したがって、コードを変更する必要があります

$write = new XMLWriter();
$write->openMemory();
$write->startElement($name);
...more code...
print $write->outputMemory();

http://www.php.net/manual/en/function.xmlwriter-write-element.php#87535を参照してください

于 2012-05-21T15:30:16.780 に答える