2011-01-20 8 views
2

PHPでDOMDocumentDOMXpathを使用して、より小さなXMLファイルに分解する製品のXMLフィードがあります。XMLノードのインポートと名前空間の削除

私は新しいXMLファイルを作成し、ルートノードを追加してから、すべてのディープコピーされたノードをメインフィードからインポートします。インポートされたノードから名前空間を削除したいと思います。

私が正しくノードからxmlns属性が削除されますが、出力が登録するための準備ができて、インポートノードに関連付けられた名前空間の痕跡を削除したい

<default:node /> 

のように見えるように、デフォルトの名前空間を作成$node->removeAttributeNS('myurl' , '')を試してみました新しい名前空間。

喜んで頂いたヒント。

答えて

0

これは実際に探しているのかわかりませんが、xml_parser_create()または `xml_parser_create_ns()を使ってパーサーを作成し、名前空間を削除するための独自の処理関数を設定することを考えました。

$xmlParser = xml_parser_create(); 
xml_set_element_handler($xmlParser, "startElementHandler", "endElementHandler"); // start and end ElementHandlers are call backs to your handling functions that handle the beginning and ending of tags. 
xml_set_default_handler($xmlParser, "handleMe"); // handleMe is a callback to your function to handle the data inside the tags. 
xml_parse($xmlParser, $xmlData); 

php.net

で見つかったXMLを処理するために使用することができ、より多くの機能があります。
関連する問題