ホームページ > php教程 > php手册 > PHPでDOMDocumentを簡単に使用するサンプルコード(XMLの作成・追加・削除・変更)

PHPでDOMDocumentを簡単に使用するサンプルコード(XMLの作成・追加・削除・変更)

WBOY
リリース: 2016-06-13 12:12:18
オリジナル
805 人が閲覧しました

これは 4 つのファイルに分割されており、作成、追加、削除、変更の 4 つの関数があります。変数はすべてハードコーディングされています。
//index.php 作成関数
を使用して変数を受け取ることができます。

コードをコピー コードは次のとおりです。


$xmlpatch = 'index.xml'; >$ _id = '1';
$_content = 'content1';
$_sendtime = 'time1'; >$ _htmlpatch = '1.html';
jb51.net$doc = new DOMDocument('1.0', 'utf-8');
$doc -> net$ root = $doc -> createElement('root');//新しいノード
jb51.net$index = $doc ->createElement('index');//新しいノード
jb51. net$ url = $doc -> createAttribute('url');//新しい属性
$patch = $doc ->createTextNode($_htmlpatch);//新しいTEXT値
$url -> appendChild( $patch);// $patch テキストを $url 属性の値に設定します
jb51.net$id = $doc ->
$newsid = $doc; -> createTextNode ($_id);
$id ->
jb51.net$title = $doc -> $doc ->createTextNode($_title);
$title ->appendChild($newstitle);//ノード値
jb51.net$author = $doc ->createAttribute('author');
$author -> ;
jb51.net$doc -> createAttribute('time');
$sendtime -> newssendtime);
jb51.net$index -> appendChild($id);//$id をインデックス ノードの属性として設定します。以下は
$index -> );
$index ->
$index -> > appendChild($sendtime) ;
jb51.net$root ->appendChild($index);// インデックスをルートバイトポイントとして設定します
jb51.net$doc -> ;// root を次のノードとして設定します
jb51.net$doc -> save($xmlpatch);// ファイル
jb51.netecho $xmlpatch を保存します。
jb51 .net?>
jb51 .net



XML 操作


jb51.net




//add.php は関数を追加します (主にロードと $root = $doc を追加します) -> documentElement を使用して次のノードを取得します



コードをコピーします

コードは次のとおりです:


$xmlpatch = 'index.xml';
$_id = '2';
$_title = 'title2';
$_content = 'content2';
$_author = 'author2';
$_sendtime = 'time2';
$_htmlpatch = '2.html';
jb51.net$doc = 新しい DOMDocument();
$doc ->フォーマット出力 = true;
if($doc ->load($xmlpatch)) {
$root = $doc ->gt; documentElement;//获得根节点(root)
$index = $doc -> createElement('インデックス');
jb51.net$url = $doc -> createAttribute('url');
$patch = $doc -> createTextNode($_htmlpatch);
$url -> appendChild($patch);
jb51.net$id = $doc -> createAttribute('id');
$newsid = $doc -> createTextNode($_id);
$id -> appendChild($newsid);
jb51.net$title = $doc -> createAttribute('タイトル');
$newstitle = $doc -> createTextNode($_title);
$title -> appendChild($newstitle);
jb51.net$content = $doc -> createTextNode($_content);
jb51.net$author = $doc -> createAttribute('作成者');
$newsauthor = $doc -> createTextNode($_author);
$author -> appendChild($newsauthor);
jb51.net$sendtime = $doc -> createAttribute('時間');
$newssendtime = $doc -> createTextNode($_sendtime);
$sendtime -> appendChild($newssendtime);
jb51.net$index -> appendChild($id);
$index -> appendChild($title);
$index -> appendChild($content);
$index -> appendChild($url);
$index -> appendChild($author);
$index -> appendChild($sendtime);
jb51.net$root -> appendChild($index);
jb51.net$doc ->保存($xmlpatch);
jb51.netecho $_id 。 ' に ' が追加されました。 $xmlパッチ;
jb51.net} else {
echo 'xml ファイルの読み込みエラー!';
}
?>




XML 操作 - 追加


jb51.net



//edit.php 修改機能(这里只修改タイトル属性值 跟节点值)

复制代码 代發如:


$xmlpatch = 'index.xml';
$_id = '2';
$_title = '変更されました';
$_content = '変更されました';
jb51.net$doc = 新しい DOMDocument();
$doc ->フォーマット出力 = true;
jb51.netif($doc ->load($xmlpatch)) {
$root = $doc ->gt;ドキュメント要素;
$elm = $root -> getElementsByTagName('インデックス');
$checkexist = 0;
foreach ($elm as $new) {
if($new ->gt; getAttribute('id') == $_id) {
$new ->gt; setAttribute('タイトル', $_title);
$new -> nodeValue = $_content;//修正节点值,真是太意外,没想跟JS一样直接能赋值...
//$new -> RemoveChild($new -> ノード値);
$checkexist = 1;
}
}
if($checkexist == 0) {
echo $_id . ' が ' に見つかりません。 $xmlパッチ;
} else {
$doc ->;保存($xmlpatch);
エコー $_id 。 「変更されました」;
}
} else {
echo 'xml ファイルの読み込みエラー!';
}
jb51.net?>




XML 操作 - 修正


jb51.net



//del.php 删除機能

复制代 代码如下:


$xmlpatch = 'index.xml';
$_id = '2';
jb51.net$doc = 新しい DOMDocument();
$doc ->フォーマット出力 = true;
if($doc ->load($xmlpatch)) {
$root = $doc ->gt;ドキュメント要素;
$elm = $root -> getElementsByTagName('インデックス');
foreach ($elm as $new) {
if($new -> getAttribute('id') == $_id) {
if($root -> RemoveChild($new)) {
エコー $_id 。 ' は削除されました';
} else {
echo $_id . ' 削除に失敗しました';
}
}
}
$doc ->保存($xmlpatch);
} else {
echo 'xml ファイルの読み込みエラー!';
}
jb51.net?>




XML 操作 - 删除


jb51.net



jb51.net
总结一下,主用の追加はcreate跟appendChild,create後边跟Elementは创建点,跟Attributeはプロパティ,TextNodeは造成,その後appendChildこれは、所属関係から設定されるものであり、非常に単純であると考えられます。 変更と削除は、まず、変更が必要なノードごとに getElementsByTagName を取得してから、そのノードを取得します。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート