独上高楼网站
  •    你所在位置:首页 VS.netXMLXML经验〉简单的XML留言板
  • 简单的XML留言板
  • 作者:佚名  文章来源:http://www.4oa.com/  发布日期:2007-11-08  浏览次数:1013
  • 打印这篇文章
  •     主程序guestbook.php
    < ?php
    //==========================================
    //
    文件名
    : guestbook.php
    //
    : 简单的XML留言簿

    // power by ice_berg16
    //==========================================
    class guestbook extends DOMDocument
    {
    public function __construct()
    {
    parent:: __construct();
    if (!file_exists("guestbook.xml"))
    {
    $xmlstr = "< ?xml version='1.0' encoding='GB2312'?>< messageList>< /messageList>";
    $this->loadXML($xmlstr);
    $this->save("guestbook.xml");
    }
    else
    $this->load("guestbook.xml");
    }

    //==========================================
    //
    函数: addMessage
    //
    功能: 添加一条留言
    //
    参数: $userName 留言人名称
    //
    参数: $message 留言内容
    //
    参数: $postTime 留言时间
    //
    返回: 1 成功 0 失败
    //==========================================
    public function addMessage($userName, $content, $postTime)
    {
    $root = $this->documentElement;
    $id = $this->getElementsByTagName("id")->length+1;
    $Nid = $this->createElement("id");
    $text = $this->createTextNode(iconv("GB2312","UTF-8",$id));
    $Nid->appendChild($text);
    $NuserName = $this->createElement("userName");
    $text = $this->createTextNode(iconv("GB2312","UTF-8",$userName));
    $NuserName->appendChild($text);
    $Ncontent = $this->createElement("content");
    $text = $this->createTextNode(iconv("GB2312","UTF-8",$content));
    $Ncontent->appendChild($text);
    $NpostTime = $this->createElement("postTime");
    $text = $this->createTextNode(iconv("GB2312","UTF-8",$postTime));
    $NpostTime->appendChild($text);
    $Nmessage = $this->createElement("message");
    $Nmessage->appendChild($Nid);
    $Nmessage->appendChild($NuserName);
    $Nmessage->appendChild($Ncontent);
    $Nmessage->appendChild($NpostTime);
    $root->appendChild($Nmessage);
    if ($this->save("guestbook.xml"))
    {
    return 1;
    }
    else
    return 0;

    }
    //==========================================
    //
    函数: delMessage($id)
    //
    功能: 根据信息ID删除一条信息
    //
    参数: $id 留言编号
    //
    返回: 1 成功 0 失败
    //==========================================
    function delMessage($id)
    {
    $root = $this->documentElement;
    $xpath = new DOMXPath($this);
    $Nmessage = $xpath->query("//message[id=$id]");
    if ($root->removeChild($Nmessage->item(0)))
    {
    $this->save("guestbook.xml");
    return 1;
    }
    else
    return 0;
    }
    }

    if (isset($_POST['add']))
    {
    $guestbook = new guestbook;
    $now = date("Y-m-d H:i:s");
    if ($guestbook->addMessage($_POST['userName'],$_POST['content'],$now))
    {
    echo "< script>alert('
    添加成功');location.href='".$_SERVER['PHP_SELF']."'< /script>";
    }

    }
    if (isset($_GET['method']) && $_GET['method'] == "del")
    {
    $guestbook = new guestbook;
    if ($guestbook->delMessage($_GET['id']))
    {
    echo "< script>alert('
    删除成功');location.href='".$_SERVER['PHP_SELF']."'< /script>";
    }
    }
    else
    {
    $script = < < < SCRIPT
    < script>
    var xml = new ActiveXObject("Msxml2.DOMDocument");
    var xsl = new ActiveXObject("Msxml2.DOMDocument");
    xml.async = false;
    xml.load("guestbook.xml");
    xsl.async = false;
    xsl.load("guestbook.xsl");
    document.write(xml.transformNode(xsl));
    < /script>
    SCRIPT;
    $form = < < < FORM
    < form method='post' action='guestbook.php'>
    < input type=text name='userName' size=20>< br/>
    < textarea name='content' cols=50 rows=5>< /textarea>< br/>
    < input type='submit' name='add' value='
    添加留言'>
    FORM;
    echo $script;
    echo $form;
    //*/
    }
    ?>
    -------
    样式表guestbook.xsl-----------------
    < ?xml version='1.0' encoding='GB2312'?>
    < xsl:stylesheet version='1.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    < xsl:template match="/messageList">
    < table style='font-size:12px;' width='60%' cellpadding='5' cellspacing='1' bgcolor='#999999'>
    < xsl:for-each select='message'>
    < tr>
    < td style='color:#FFFFFF'>
    < xsl:value-of select="userName" />
     At 
    < xsl:value-of select="postTime" />
         
    < xsl:element name="A">
    < xsl:attribute name="href">guestbook.php?method=del&id=< xsl:value-of select="id" />< /xsl:attribute>
    删除
    < /xsl:element>
    < /td>
    < /tr>
    < tr bgcolor='#FFFFFF'>
    < td>< xsl:value-of select="content" />< /td>
    < /tr>
    < /xsl:for-each>
    < /table>
    < /xsl:template>
    < /xsl:stylesheet>

     

  • 打印这篇文章
  • 与本文主题相关的文章
  • 返回首页