ایکس ایس ایل ٹی - ایکس ایم ال پر تحریر
- پچھلے صفحے سرور پر XSLT
- آئندہ صفحہ ایکس ایس ایل ٹی مثال
ایکس ایم ایل فائل میں ذخیرہ کئے گئے اعداد و شمار انٹرنیٹ براوزر کے ذریعہ ترمیم کئے جاسکتے ہیں۔
ایکس ایم ایل کھولنا، ترمیم اور محفوظ کرنا
اب، ہم آپ کو دکھائیں گے کہ کیسے سرور پر ذخیرہ کئے گئے ایکس ایم ایل فائل کو کھولنا، ترمیم اور محفوظ کرنا۔
آپ اس ایکس ایس ال استفادہ کریں گے تاکہ ایکس ایم ایل ڈاکومن کو ایک ایچ تی ایم لائن فارم میں تبدیل کریں گے۔ ایکس ایم ایل عناصر کا مطلب ایچ تی ایم لائن فورم میں انٹری کے میدان میں لکھا جائے گا۔ یہ فورم قابل ترمیم ہے۔ جب وہ تیار ہوجائے گا، تو اعداد و شمار سرور پر ارسال کئے جائیں گے، ایکس ایم ایل فائل اپدیت ہوجائے گا (یہ حصہ اے ایس پی کے ذریعہ انجام دیا جائے گا)۔
XML فائل اور XSL فائل
ابتدا، اس کا استعمال کی جانے والا XML ڈاکومنٹ کو دیکھئے ("tool.xml"):
<?xml version="1.0" encoding="ISO-8859-1"?> <tool> <field id="prodName"> <value>HAMMER HG2606</value> </field> <field id="prodNo"> <value>32456240</value> </field> <field id="price"> <value>$30.00</value> </field> </tool>
اب، نیچے کی اس شیت کو دیکھئے ("tool.xsl"):
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <xsl:template match="/"> <html> <body> <form method="post" action="edittool.asp"> <h2>Tool Information (edit):</h2> <table border="0"> <xsl:for-each select="tool/field"> <tr> <td> <xsl:value-of select="@id"/> </td> <td> <input type="text"> <xsl:attribute name="id"> <xsl:value-of select="@id" /> </xsl:attribute> <xsl:attribute name="name"> <xsl:value-of select="@id" /> </xsl:attribute> <xsl:attribute name="value"> <xsl:value-of select="value" /> </xsl:attribute> </input> </td> </tr> </xsl:for-each> </table> <br /> <input type="submit" id="btn_sub" name="btn_sub" value="Submit" /> <input type="reset" id="btn_res" name="btn_res" value="Reset" /> </form> </body> </html> </xsl:template> </xsl:stylesheet>
یہ XSL فائل XML فائل میں عناصر کو حل حل کریگا اور ہر XML "field" عنصر کے لئے ایک انٹری میدان بنائے گا۔field عنصر کی id خاصیت کا مارکر ہر HTML انٹری میدان کی id اور name خاصیت میں شامل کیا جاتا ہے."value" عنصر کا مارکر ہر HTML انٹری میدان کی "value" خاصیت میں شامل کیا جاتا ہے۔ نتیجے میں، XML فائل میں کیاجانے والی اعداد و شمار کا ایک قابل ترمیم HTML فرم حاصل ہوتا ہے۔
پس، ما همچنین یک جدول样式: "tool_updated.xsl" داریم. این فایل XSL برای نمایش دادههای XML بهروز شده استفاده خواهد شد. این جدول فرم HTML قابل ویرایش را نمیافزاید، بلکه یک جدول HTML استاتیک است:
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <xsl:template match="/"> <html> <body> <h2>اطلاعات ابزار بهروزرسانی شده:</h2> <table border="1"> <xsl:for-each select="tool/field"> <tr> <td><xsl:value-of select="@id" /></td> <td><xsl:value-of select="value" /></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
فایل ASP
در فایل "tool.xsl"، مقدار action ویژگی action فرم HTML "edittool.asp" است.
"edittool.asp" پیغامنامه دو تابع دارد: loadFile() بارگذاری و تبدیل فایل XML، updateFile() تابع بهروزرسانی فایل XML:
<% function loadFile(xmlfile,xslfile) Dim xmlDoc,xslDoc فایل XML را بارگذاری کنید set xmlDoc = Server.CreateObject("Microsoft.XMLDOM") xmlDoc.async = false xmlDoc.load(xmlfile) بارگذاری فایل XSL set xslDoc = Server.CreateObject("Microsoft.XMLDOM") xslDoc.async = false xslDoc.load(xslfile) تبدیل فایل Response.Write(xmlDoc.transformNode(xslDoc)) end function function updateFile(xmlfile) Dim xmlDoc,rootEl,f Dim i فایل XML را بارگذاری کنید set xmlDoc = Server.CreateObject("Microsoft.XMLDOM") xmlDoc.async = false xmlDoc.load(xmlfile) متغیر rootEl را به عنصر ریشه تنظیم کنید Set rootEl = xmlDoc.documentElement فرمها را در حلقه بگردید for i = 1 To Request.Form.Count عناصر دکمه فرم را حذف کنید if instr(1,Request.Form.Key(i),"btn_")=0 then مетод selectSingleNode میتواند یک نقطه در فایل XML که با یک جستجو تطابق دارد را پیدا کند این جستجو درخواست یک element value میکند، که یک زیر عناصر از element field است این element field دارای یک property id است که میتواند با کلید فعلی فرم تطابق یابد اگر تطابق وجود دارد، مقدار text را به مقدار فعلی حوزه فرم تنظیم کنید set f = rootEl.selectSingleNode("field[@id='" & _ Request.Form.Key(i) & "/value") f.Text = Request.Form(i) end if next فایل XML تغییر یافته را ذخیره کنید xmlDoc.save xmlfile تمام ارجاعات به اشیاء را آزاد کنید set xmlDoc=nothing set rootEl=nothing set f=nothing یک فایل XML تغییر یافته را با استفاده از یک جدول استایل بارگذاری کنید، تا کاربران بتوانند اطلاعات ویرایش شده را ببینند loadFile xmlfile,server.MapPath("tool_updated.xsl") end function اگر فرم ارسال شده باشد، فایل XML را بهروزرسانی کرده و نتایج را نمایش دهید، اگر ارسال نشده باشد، این فایل XML را برای ویرایش تبدیل کنید if Request.Form("btn_sub")="" then loadFile server.MapPath("tool.xml"),server.MapPath("tool.xsl") else updateFile server.MapPath("tool.xml") end if %>
خبر:اگر آپ ASP کا استعمال نہیں جانتے تو، اپنے لیے ہماراASP تعلیم》。
تعلیمات:ہم سرور پر موجود XML فائل کو تبدیل اور اپدیت کر رہے ہیں۔ یہ ایک پلیٹ فارم پر مبنی حل ہے۔ کلائنٹ صرف سرور سے واپس آئی جائی نالوبیا HTML حاصل کرسکتا ہے - جو کسی بھی براوزر میں چل سکتا ہے。
- پچھلے صفحے سرور پر XSLT
- آئندہ صفحہ ایکس ایس ایل ٹی مثال