// XML に詳しくないので、アノテーション内の XML の記述が間違っている可能性があります。
// これは単なるアイデアであり、実装するには、いくつかのデータを少し変更する必要があります。 XML を使用してクエリされることはあまりありません。 Save
// たとえば、仮想コミュニティ内のユーザー情報は、通常、ユーザー自身または別のユーザーが USERNAME を指定した場合にのみ表示されます。
// 残りは開く必要があります。クエリを実行し、データセットを解釈し、消費するたびにデータベースを閉じます。
define("enter",chr(13).chr(10));
class DATA_XML //キー! ! !カスタム クラス
{
var $parser; //XML インタープリター
var $tags; //
var $root; 🎜>var $Data = array(); // 要素配列
function DATA_XML($filename,$root) //クラスの初期関数 filename ファイル名、ルート root 要素
{
$this ->root = $root; //初期ルート要素
$this->parser = xml_parser_create();//解釈オブジェクトを作成
xml_set_object(&$this->parser,&$this ); //オブジェクトを設定
xml_set_element_handler($this->parser,"tag_on","tag_off");//要素管理関数を設定
xml_set_character_data_handler($this->parser,"getdata"); //データ管理イベントを設定します
xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0); //厳密に大文字と小文字を区別する必要があります
if( file_exists($filename) ) //ファイルは見つかりましたか?
{//Find
$fp = fopen($filename,"r"); //読み取り専用で開きます
$c = fread($fp,filesize($filename)); data
fclose($fp);//Close
$this->parse($c); //解釈オブジェクトを設定します
}
else
{
echo "うおおお "; //! ? !デバッグに使用されているようです。else
}
}
function parse($data)//説明 function
{
xml_parse を削除するだけです。 ($this->parser,$data);
}
function tag_on($parser,$tag,$attributes)//要素トリガー関数を検出します
{
$this- >on = true; // すでにトリガーされています
$this->tags = $tag;
//echo $tag;
}
function tag_off($parser,$ tag ) // 要素バインディング function
{
$this->on = false; // 要素バインディング
}
function getdata($parser,$cdata) // element
{
if($this->on && $this->tags!=$this->root)
{// (要素であるかどうか) を確認したほうがよい)
$this->Data[$this->tags]=trim($cdata);
!タグを使用して配列テーブルを作成し、配列要素にデータを追加します
//echo trim($cdata);
//echo $this->tags;
//echo "n";
}
}
function check($str)
{//チェック文字
if( strlen($str)return ' ' ;//Return ' '
else
return $str;//それ以外の場合は、元のパスに戻ります(そうでない場合、XML には終了タグがないように見えます)
}
function saveas( $filename)//
{
$c=''.enter; ",chr(13).chr(10) として保存));
$c.="<".$this->root.">".enter;
for(reset($this->Data);$i=key($ this->Data);next($this->Data))
{//すべてのデータのリストを開始します
$c.= "<".$i.">".$ this->check($this->Data[$i])."".$i."> ;".enter;
// 配列テーブル名を要素ラベルとして使用し、追加しますデータ内容
}
//echo $c;
$c.="".$ this->root.">".enter;//終了タグ
$fp = fopen( $filename , "w" );// ファイルを書き込みます
fwrite($fp,$c);
fclose($fp);
}
};
/*XML ファイルの新しいキー
DATA_XML(path."arm.xml","DATA"/*ルート要素*/) );
$ xml->Data["UserName"]="Guan Yu";
$xml->Data[ "Nick"]="Guan Yuchang";
$xml->saveas(path."arm) .xml");
unset( $xml );
// ファイルを読み取ります
$ xml = new DATA_XML(path."arm.xml","DATA");
echo $xml ->Data["Nick"];//見せますか?
$xml->Data["Nick"]="Master Guan";//UPDATE
$xml->Data["Master"]="Liu Bei";//INSERT INTO
$ xml->saveas(path."arm.xml");//上書き保存
*/
?>