แสดงข่าวจาก Thaisarn.com ด้วย ASP.net(VB)
อัปเดท : 19 มีนาคม พ.ศ.2546 , แสดง : 50,585 , ความคิดเห็น : 3
ไทยสาร.คอม (ThaiSarn.com:ข่าวสารเพื่อคนไทย)คือศูนย์กลางแลกเปลี่ยนข่าวสารประเทศไทยที่ให้บริการแลกเปลี่ยนข่าวสารในรูปแบบอิเล็กทรอนิกส์บนเครือข่ายอินเทอร์เน็ตจากแหล่งข่าวต่างๆทั้งจากภาครัฐและภาคเอกชนของไท ในรูปแบบอัตโนมัติ โดยใช้เทคโนโลยีสารสนเทศในรูปแบบใหม่ที่เรียกว่า "Extensible Markup Language หรือ XML" เข้ามาประยุกต์เพื่อเป็นการปฏิวัติการเผยแพร่ข่าวสารบนเว็บไซต์ในประเทศไทยและเป็นทางเลือกใหม่ให้แก่ประชาชนไทยสามารถได้รับทราบข่าวสาร ได้อย่างมีประสิทธิภาพ คัดลอกจาก Thaisarn.com
สำหรับบทความนี้จะนำเสนอเกี่ยวกับวิธีการดึงข่าวจาก Thaisarn.com ที่เป็นเอกสาร XML มาแสดงผลในเวบไซต์ของเราโดยใช้ ASP.net(VB) ดังตัวอย่างในหน้าแรก ซึ่ง ThaiSarn.com เองจะมีข่าวที่ส่งมาจากแหล่งข่าวต่าง ๆที่มีอยู่ ทำให้ ThaiSarn.com มีข่าวที่หลายหมวดหมู่ และข่าวเหล่านั้นจะ [update] โดยอัตโนมัติทั้งใน ThaiSarn.com และ เวบไซต์ที่ดึงข่าวมา ดังนั้นเราจึงได้ข่าวมาโดยที่ไม่ต้องเพิ่มข่าวเอง เพียงแค่เขียน Code ขึ้นมาเพื่อดึงเท่านั้น ฟังดูแล้วน่าสนใจใช่มั้ยครับเริ่มกันเลยดีกว่า
ก่อนอื่นต้องทำความเข้าใจกันก่อนว่า Thaisarn.com จัดเตรียมอะไรไว้ให้บ้าง
Thaisarn.com ได้จัดเตรียม Query ข่าวให้ที่ URL : http://www.thaisarn.com/services/distributor/xml_distributor.php โดยเราจะส่ง Parameter หรือตัวแปรในการ Query ผ่าน URL นี้ สำหรับค่า Parameter มีดังนี้
fdate=dd/mm/yyyy เป็นตัวแปรกำหนดการดึงข่าวของวันนั้น ๆ (วันที่ dd เดือน mm ปีค.ศ. yyyy)
fdate=dd/mm/yyyy&tdate=DD/MM/YYYY เป็นตัวแปรกำหนดการดึงข่าวของทั้งหมดจากวันที่ dd เดือน mm ปีค.ศ. yyyy ถึงวันที่ DD เดือน MM ปีค.ศ. YYYY
nlatest=K เลือกข่าวล่าสุด K ข่าว (ที่ link ตัวอย่างให้ข่าวล่าสุด 7 ข่าว)
category=CAT ให้ข่าวประเภท CAT เท่านั้น สามารถเลือกข่าวหลายประเภทได้โดยกั้นแต่ละประเภทด้วย "," เช่น category=รัฐบาล,บันเทิง ให้ข่าวรัฐบาล และข่าวบันเทิง [หมวดข่าวทั้งหมด]
source=SRC ให้ข่าวจากแหล่งข่าว SRC เท่านั้น สามารถเลือกข่าวจากหลายแหล่งข่าวได้โดยกั้นแต่ละแหล่งด้วย "," เช่น source=ไทยรัฐ,ผู้จัดการ [แหล่งข่าวทั้งหมด]
keyword=KWD ให้ข่าวที่มีหัวข้อข่าวหรือ คำสำคัญในข่าวมีคำว่า "KWD" สามารถกำหนดคำสำคัญมากกว่าหนึ่งคำได้โดยแยกแต่ละคำด้วย "," เช่น keyword=CPU,intel
ถ้ามีการส่ง Parameter หลายๆตัว แต่ละตัวจะต้องกั้นด้วย & เช่น "xml_distributor.php?source=ไทยรัฐ&nlatest=7&category=เทคโนโลยี" หลังจากตั้งค่า Parameter ต่าง ๆเรียบร้อยแล้วก็ต้องมาลองดูก่อนว่าถูกต้องหรือไม่ โดยใช้ Internet Explorer ช่วย โดยพิมพ์ URL http://www.thaisarn.com/services/distributor/xml_distributor.php? แล้วตามด้วย Pameter ต่างๆ ถ้าถูกต้องก็จะได้ผลดังรูปตัวอย่าง
คุณสามารถอ่านรายละเอียดทั้งหมดได้ที่ http://www.thaisarn.com/
ต่อไปก็เป็นส่วนของ Code จริงๆ ซึ่งมีอยู่ด้วยกัน 2 ส่วน คือ
1. XML Schema (XslTransform) : เป็นส่วนที่กำหนดโครงสร้าง XML ที่จะแสดงผล
NewStyle.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="newspage"> <xsl:apply-templates [select]="news" /> </xsl:template> <xsl:template match="news"> <table width="470" border="0" cellpadding="1" cellspacing="1"><tr> <td><img src="images/DotMnu.gif" width="9" height="9" hspace="2"/> <a target="_blank"> <xsl:attribute name="href" > <xsl:value-of [select]='link'/> <xsl:value-of [select]='source'/> </xsl:attribute> <xsl:value-of [select]='title'/> </a> [<xsl:value-of [select]='pubdate'/>] </td></tr></table> </xsl:template> </xsl:stylesheet> |
2. XML Control : เป็นส่วนที่แสดงผลจริง
NewXml.aspx
<%@ Page Language="VB" autoeventwireup="True" Debug="true" %> <%@ import Namespace="[sys]tem.Xml" %> <%@ import Namespace="[sys]tem.Xml.Xsl" %> <script runat="server"> Sub Page_Load(sender As Object, e As EventArgs) Dim doc As XmlDocument = New XmlDocument() Dim XmlURL = "http://www.thaisarn.com/services/distributor/xml_distributor.php?category=%E0%B7%A4%E2%B9%E2%C5%C2%D5&nlatest=100&source=%bc%d9%E9%a8%d1%b4%a1%d2%c3,%a1%c3%d8%a7%e0%b7%be%b8%D8%c3%a1%d4%a8" doc.Load(XmlURL) Dim trans As XslTransform = new XslTransform() trans.Load(Server.MapPath("NewsStyle.xsl")) xml1.Document = doc xml1.Transform = trans End Sub </script> <html> <head> <title>www.NextProject.Net [News]</title> <meta http-equiv="Content-Type" content="text/html; charset=tis-620" /> </head> <body > <form runat="server"><asp:Xml id="xml1" runat="server"></asp:Xml></form> </body> </html> |
สำหรับการใช้งานจริงอาจมีจะมีความยุ่งยากอย่างหนึ่งคือ ในการส่ง Parameter ที่เป็นภาษาไทย ซึ่งในตอนเรียกผ่าน Internet Explorer จะแสดงผลถูกต้อง แต่ตอนเรียกผ่าน ASP.net จะทำไม่ได้ (ผมเองยังไม่ทราบว่าความผิดพลาดเกิดจากอะไร เข้าใจว่าคงเกี่ยวกับ Code Page) การแก้ไขก็ก็คือต้องส่งค่า Parameter ที่เป็น Code Page จริงๆ กล่าวคือเราต้องเข้ารหัส Code Page เช่น
"เทคโนโลยี" จะต้องเปลี่ยนเป็น "%E0%B7%A4%E2%B9%E2%C5%C2%D5"
"ผู้จัดการ" จะต้องเปลี่ยนเป็น "%bc%d9%E9%a8%d1%b4%a1%d2%c3"
"กรุงเทพธุรกิจ" จะต้องเปลี่ยนเป็น "%a1%c3%d8%a7%e0%b7%be%b8%D8%c3%a1%d4%a8"
อักขระ อื่นๆ เช่น "?" "," และ "&" ยังใช้เหมือนเดิม
วิธีการเข้ารหัส Code Page หารายละเอียดได้จาก http://www.batutis.com/i18n/papers/lmbcs/group0B.html นะครับ สำหรับบทความนี้ก็ขอจบแค่นี้ล่ะครับ
ผู้เขียน/อ้างอิง : จักรกฤษณ์ แร่ทอง
ซอร์สโค๊ด/โอเพนซอร์ส
Regular expression เป็นการกำหนดรูปแบบเพื่อการค้นหาข้อความหรือตัวอักษรว่า มีอยู่ในข้อความที่กำหนดหรือไม่
แสดงผลจำนวนผู้ใช้งานที่กำลังเข้าเวบของ เราในขณะนั้น ๆ
ศูนย์กลางแลกเปลี่ยนข่าวสารประเทศไทย
โปรแกรมจำลอง การทำงานเครื่องคิดเลข CASIO 3800 มีชุดคำสั่ง แบบ 3800 เกือบทั้งหมด Function ทาง คณิตศาสตร์ ทั้งหมด
โปรแกรมจำลอง การทำงานเครื่องคิดเลข CASIO 5500 มีชุดคำสั่ง แบบ 5500 เกือบทั้งหมด Function ทาง คณิตศาสตร์ ทั้งหมด
สามารถ New ,Edit ,Save As และอื่น ๆ คล้าย กับ Editor บน Dos
โปรแกรมโครงสร้างข้อมูลทำงานโดยแปลง Infix to Posfix
โปรแกรม เกม งู คล้ายของ Nokia พัฒนาด้วย ด้วย Turbo C 2.0 ทั้งหมด
BKK Bus 2003 ใช้ในการค้นหาสายรถ เส้นทางรถใน กรุงเทพฯ
Code ง่าย ๆ มีไว้เพื่อ ตรวจสอบพี้นที่ใช้งานของ Host
ความคิดเห็น/แนะนำ/ติชม/อื่นๆ
- benz [18 ม.ค. 2549 , 08:50 PM]
น่าสนใจ
- สุนิสา [23 ส.ค. 2549 , 07:25 PM]
ดิฉันเป้นนักศึกษา กำลังทำโปรเจคเกี่ยวกับ webservice โดย asp.net (vb) ดิฉันดิดปัญหาเกี่ยวกับ code อยากจะได้โค้ดเกี่ยวกับการส่งข้อมูลจาก pda phone โดยข้อมูลนั้นเป็น text ไปยัง Server โดย gprs ผ่านตัว webservice จึงใคร่ขอความกรุณาช่วยบอกที่และอย่างได้ข้อมูลเพิ่มเติมว่า การส่งข้อมูลจาก pda phone ไปยัง server โดยใช้ ส่งแบบ gprs ผ่าน webservice สามารถทำได้จริงหรือไม่ และมีขั้นตอนอย่างไร ช่วยบอกด้วย และอยากได้คำตอบอย่างด่วน!!!!!!!!!!!!! ขอบคุณค่ะ ขอขอบพระคุณเป็นอย่างสูง / สุนิสา
- ฟ้าใส [07 ก.ย. 2551 , 09:13 PM]
ทำได้ เพียงมี ip ของ Sever เพื่อทำการเชื่อมต่อไปยัง Sever เชื่อมต่อเสร็จแล้วโอนถ่ายข้อมูลจาก pda ไปยัง sever หรือดึงข้อมูลจาก sever ได้เลย