2016-09-05 9 views
-3

私はjsonに変換する必要があるいくつかのxmlフィードを持っています。私のサービスプロバイダはxmlファイルをサーバーに2〜3回アップロードします。この時点で私はcodebeautify.orgを使用してファイルをjsonに変換し、それらをサーバーに再ロードします。私はこの変換を自動的に私のためにPHPスクリプトまたは同様の方法で行うことができる方法はありますか?どのように私がそれに取り組むべきかについてのアドバイスを感謝します。おかげで事前xml to json auto script

+0

あなたの現在の取り組みをご提示ください。 SOはコード作成サービスではありません。 – Parfait

答えて

-1

にここに行く:

function removeNamespaceFromXML($xml) 
{ 
    // Because I know all of the the namespaces that will possibly appear in 
    // in the XML string I can just hard code them and check for 
    // them to remove them 
    $toRemove = ['rap', 'turss', 'crim', 'cred', 'j', 'rap-code', 'evic']; 
    // This is part of a regex I will use to remove the namespace declaration from string 
    $nameSpaceDefRegEx = '(\S+)=["\']?((?:.(?!["\']?\s+(?:\S+)=|[>"\']))+.)["\']?'; 

    // Cycle through each namespace and remove it from the XML string 
    foreach($toRemove as $remove) { 
     // First remove the namespace from the opening of the tag 
     $xml = str_replace('<' . $remove . ':', '<', $xml); 
     // Now remove the namespace from the closing of the tag 
     $xml = str_replace('</' . $remove . ':', '</', $xml); 
     // This XML uses the name space with CommentText, so remove that too 
     $xml = str_replace($remove . ':commentText', 'commentText', $xml); 
     // Complete the pattern for RegEx to remove this namespace declaration 
     $pattern = "/xmlns:{$remove}{$nameSpaceDefRegEx}/"; 
     // Remove the actual namespace declaration using the Pattern 
     $xml = preg_replace($pattern, '', $xml, 1); 
    } 

    // Return sanitized and cleaned up XML with no namespaces 
    return $xml; 
} 

function namespacedXMLToArray($xml) 
{ 
    // One function to both clean the XML string and return an array 
    return json_decode(json_encode(simplexml_load_string(removeNamespaceFromXML($xml))), true); 
} 

print_r(namespacedXMLToArray($xml)); 

出典:我々はトラブルシューティングを行うことができるようにhttps://laracasts.com/discuss/channels/general-discussion/converting-xml-to-jsonarray

+0

誰かが-1の理由を教えてもらえますか? – MoeinPorkamel