ホームページ  >  記事  >  バックエンド開発  >  Python基本チュートリアルプロジェクト3つのユニバーサルXML

Python基本チュートリアルプロジェクト3つのユニバーサルXML

不言
不言オリジナル
2018-04-03 09:21:561656ブラウズ

この記事では主に Python の基本チュートリアル プロジェクトの 3 つのユニバーサル XML を詳しく紹介します。興味のある方は参考にしてください。このプロジェクトの名前はユニバーサル XML ではなく、自動と呼ばれたほうがよいでしょう。 Web サイトは、XML ファイルに基づいて、対応するディレクトリ構造を備えた Web サイトを生成します。ただし、CSS も生成できれば、より強力になります。これは今後開発する必要があります。まず HTML ウェブサイトの構造を勉強しましょう。 Web サイトは XML 構造を通じて生成されるため、すべてがこの XML ファイルから取得される必要があります。まず、この XML ファイル、Web サイトを見てみましょう。


まず、この XML ファイルを解析する必要があります。Python は Java と同じように XML を解析します。2 つの処理方法の違いは、速度と処理範囲のみです。後者は、最初にすべてのドキュメントをメモリにロードしてから処理する方法ですが、処理が遅くなり、より多くのメモリを消費します。利点は、文書全体を操作できることです。

sax を使用して Python で XML を処理するには、まず xml.sax に parse 関数を導入し、xml.sax.handler に ContentHandler を導入する必要があります。後者のクラスは parse 関数と組み合わせて使用​​する必要があります。使用方法は次のとおりです: parse('xxx.xml',xxxHandler)、ここの xxxHandler は上記の ContentHandler を継承する必要がありますが、継承するだけで何もする必要はありません。 次に、parse 関数が XML ファイルを処理するときに、xxxHandler の startElement 関数と endElement 関数を呼び出して、xml 内のタグを開始および終了します。中間のプロセスでは、characters という名前の関数を使用して、タグ内のすべての文字列を処理します。

上記の理解により、xml ファイルを処理する方法がすでにわかりました。次に、悪の根源である website.xml ファイルを見て、その構造を分析します。ページとディレクトリの 2 つのノードしかないことは明らかです。そのページはページを表し、ディレクトリはディレクトリを表します。

それで、この XML ファイルを処理するアイデアが明確になります。 XML ファイルの各ノードを読み取り、それがページであるかディレクトリであるかを判断し、ページである場合は HTML ページを作成し、ノードの内容をファイルに書き込みます。ディレクトリが見つかった場合は、フォルダーを作成し、その中にあるページ ノード (存在する場合) を処理します。
コードのこの部分を見てみましょう。この本の実装はより複雑で柔軟です。まずはそれを見てから分析しましょう。


<website>
 <page name="index" title="Home page">
 <h1>Welcome to my Home page</h1>
 <p>Hi, there. My name is Mr.gumby,and this is my home page,here are some of my int:</p>
 <ul>
  <li><a href="interests/shouting.html" rel="external nofollow" >Shouting</a></li>
  <li><a href="interests/sleeping.html" rel="external nofollow" >Sleeping</a></li>
  <li><a href="interests/eating.html" rel="external nofollow" >Eating</a></li>
 </ul>
 </page>
 <directory name="interests">
  <page name="shouting" title="Shouting">
   <h1>shouting page</h1>
   <p>....</p>
  </page>
  <page name="sleeping" title="Sleeping">
   <h1>sleeping page</h1>
   <p>...</p>
  </page>
  <page name="eating" title="Eating">
    <h1>Eating page</h1>
    <p>....</p>
  </page>
 </directory>
</website>


このプログラムの分析はもう少し複雑なようですが、偉人猫猫は、どんな複雑なプログラムも張子の虎だと言っていました。それでは、このプログラムをもう一度分析してみましょう。



まず、このプログラムには 2 つのクラスがあることがわかりましたが、実際には継承により 1 つのクラスとみなすことができます。

次に、分析した startElement、endElement、文字に加えて、startPage、endPage、writeHeader、writeFooter; などの追加の関数があることを見てみましょう。 。ディスパッチを除いて、前述の関数はそれぞれ、対応する HTML タグと XML ノードを処理するだけで簡単に理解できます。ディスパッチの複雑さは、関数を動的に組み合わせて実行するために使用されることです。

dispatchの処理の考え方は、まず渡されたパラメータ(つまりオペレーション名とノード名)を元にstartPageなどの対応する関数があるかどうかを判断し、存在しない場合はデフォルトの+を実行します。操作名:defaultStart など。

各機能を一つ一つ理解すると、全体の処理の流れが分かります。まず、Web サイト全体を保存する public_html ファイルを作成し、次に XML ノードを読み取り、startElement と endElement を通じてディスパッチを呼び出して処理します。次に、dispatch が特定の処理関数を呼び出す方法について説明します。 この時点で、このプロジェクトの分析は完了しました。

マスターすべき主な内容は、Python で XML を処理するための SAX の使用であり、もう 1 つは、パラメーターを渡す際の getattr やアスタリスクなどの Python の関数の使用です...

関連する推奨事項:


Python基本チュートリアルプロジェクト 2つ目は上手な絵です

Python基本チュートリアルプロジェクト 4つ目はニュース集約です


以上がPython基本チュートリアルプロジェクト3つのユニバーサルXMLの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。