HTMLを含む約4000のテキストファイルをMySQLデータベースエントリに変換しています。これを行う簡単な方法は、HTMLに数行を追加してXMLファイルとして表示し、XMLをMySQLINSERTステートメントにXSLTすることです。(CSVの作成も機能しますが、最適ではありません)。私はこれを試してみましたが、XSLをうまく再生することができませんでした。
私はWindozeボックスを使用していますが、WebホストにSSHで接続して、PHP(おそらくPerl)を実行できます。これを可能な限り自動化したいと思います。ファイルのリストを作成し、それをスクリプトに簡単にフィードできます。
ファイル名パターン:ab12345.html(数値部分は3〜6桁で異なります)
ファイル名コンテンツサンプル-これはファイル全体であり、HTMLフッター/ヘッダーはありません:
<div class="abEntry"><a name="top"><img width="1" height="1" src="images/common/blank.gif"/></a><div id="abEntryTitle"><div id="abEntryTitleText">What does error note "90210 Cannot Do This Thing" mean?</div></div>
<div class="abEntryParagraph">This error means your McWhopper drive is frazzled. Read me the number off the modem--thats the little boxy thing attached to the big boxy thing--thanks.</div>
<div class="abEntryDocumentNumber">ab90210</div>
MySQL列と、それらを上記のコンテンツにマップして戻す方法
EntryID = auto increment
title = contents of #abEntryTitleText
content = contents of #abEntryParagraph
lastupdated = curdate
related = "1"
visible = "1"
sortorder = "0"
userid = "1"
views = "0"
posvotes = "1"
negvotes = "0"
score = null
emailed = null
detectrelated = "1"
metakeywords = null
metadescription = contents of #abEntryDocumentNumber
startdate = curdate
enableexpiry = "0"
expirydate = null
featured = "0"
workflowstatus = "auto_approved"
私が試したXSL:
<xsl:transform version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform ">
<xsl:output method="html" indent="no"/>
<xsl:template match="/"><xsl:apply-templates/></xsl:template>
<xsl:template match="content">
<xsl:text>INSERT INTO questions (approved, title, description, publishDate) VALUES </xsl:text><xsl:text>(1, </xsl:text><xsl:value-of select="id(abEntryTitleText)"/><xsl:text>, </xsl:text>
<xsl:copy-of select="node()|@*"/>
<xsl:text>, </xsl:text>TODAY<xsl:text>,1, 1)</xsl:text>
</xsl:template>
</xsl:transform>