0

これは、XMLファイルを取得するための私のリンクです:-XML LINK

これは私のコードです:-

<?php
function convertNodeValueChars($node) {
    if ($node->hasChildNodes()) {
      foreach ($node->childNodes as $childNode) {
        if ($childNode->nodeType == XML_TEXT_NODE) {
          $childNode->nodeValue = iconv('utf-8', 'ascii//TRANSLIT', $childNode->nodeValue);
        }
        convertNodeValueChars($childNode);         
      }
    }      
  } 

  $doc = new DOMDocument();
  $doc->load('http://services.gisgraphy.com/geoloc/search?lat=13o6&lng=80o12&radius=7000');
  convertNodeValueChars($doc->documentElement);
  $doc->save('general.xml');  
?>

1)ASCII文字を通常の文字に削除しようとしています
2)XMLファイルの名前空間を削除したいこれには名前空間が含まれています<results xmlns="http://gisgraphy.com">
3)別のXMLファイルとして保存したい

4

1 に答える 1

1

最初に単純なphpファイルで作成してxmlをURLからロードします:-

<?php
$dom = new DOMDocument();
$dom->load('http://services.gisgraphy.com/geoloc/search?lat=22.298569900000000000&lng=70.794301799999970000&radius=7000', true);
$dom->save('filename.xml');
?>

次に、1つのXSLTファイルを作成します。-

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output method="xml" version="1.0" encoding="UTF-8" />
        <xsl:template match="*">
                <xsl:element name="{local-name()}">
                        <xsl:apply-templates select="@* | node()"/>
                </xsl:element>
        </xsl:template>
</xsl:stylesheet>

1つのphpファイルを作成してxmlファイルをロードし、xsltファイルを実装します。-

<?php
$sourcedoc->load('filename.xml');
    $stylesheet = new DOMDocument();
    $stylesheet->load('new4convert.xsl');
     // create a new XSLT processor and load the stylesheet
    $xsltprocessor = new XSLTProcessor();
    $xsltprocessor->importStylesheet($stylesheet);

    // save the new xml file
    file_put_contents('filename.xml', $xsltprocessor->transformToXML($sourcedoc));
?>

すべてを1つのPHPファイルにまとめたい場合の最終的な合計コード:-

<?php
$dom = new DOMDocument();
$dom->load('http://services.gisgraphy.com/geoloc/search?lat=22.298569900000000000&lng=70.794301799999970000&radius=7000', true);
$dom->save('filename.xml');
$sourcedoc = new DOMDocument();
    $sourcedoc->load('filename.xml');
    $stylesheet = new DOMDocument();
    $stylesheet->load('new4convert.xsl');
     // create a new XSLT processor and load the stylesheet
    $xsltprocessor = new XSLTProcessor();
    $xsltprocessor->importStylesheet($stylesheet);

    // save the new xml file
    file_put_contents('filename.xml', $xsltprocessor->transformToXML($sourcedoc));
?>
于 2013-03-26T11:17:07.020 に答える