שלח תשובה

זירת השאלות

613
צפיות
21
תשובות

שלום

,‏ 20 ביוני, 2004

ברצוני לשים תוכן של שאילתה שאותה יוצר המשתמש
לתוך קובץ XML חדש שאותו המשתמש יוכל לקבל

אך אין לי מושג כיצד לעשות זאת עם XML

תודה מראש..

תגיות:

21 תשובות

  1. ניר טייב הגיב:

    אז ככה…
    דבר ראשון אתה עושה את השליפה

    oRs = oConn.Execute("SELECT title, description, price FROM books")

    לאחר מכן אתה מגדיר את סוג הפלט ללקוח

    Response.ContentType="text/xml"

    עכשיו אתה כותב את תג הפתיחה של ה-XML

    <?xml version="1.0" charset="iso-8598-i" ?>

    (ה-charset שכתבתי לא נראה לי שהוא נכון)
    לאחר מכן את תגית השורש (כמו ה-<HTML> ב-HTML) נגיד books


    <books>
    </books>

    ולבסוף יוצר לולאה שמדפיסה את כל ערכי הרקורדסט בתבנית XML מסוימת

    <books>
    <% while (!rs.EOF){ %>
       <book title="<% =rs.Fields("title") %>">
          <desc> <% =rs.Fields("description") %> </desc>
          <price> <% =rs.Fields("price") %> </price>
       </book>
    <% } %>
    </books>

    וזהו

    רק אל תשכח לשנות את סוג הקובץ ל-ASP

  2. gilpa הגיב:

    אבל זה מציג לי את הקובץ בדפדפן

  3. sirob הגיב:

    IE אוהב לפתוח דפי xml בדפדפן.
    תעשה:

    response.clear

    לפני שאתה מתחיל כדי למחוק כל זכר לתגובת ASP ואולי זה יעזור.

  4. אוריקס הגיב:

    אוקי, נתחיל בהסברים:
    בעקרון יש 3 אפשרויות עיקריות:
    * יצירת דף XML מתוך הרקורסט ושמירתו
    * יצירת XML זמני בתוך דף ה ASP
    * יצירת מסמך ה XML באופן מלא מתוך דף ה ASP, ללא תלות במסד הנתונים (כמובן שיש אפשרות לשלב נתונים מה DB)

    הדרך השלישית, כמובן, הכי גמישה. הדרך השנייה טובה במידה ואנחנו רוצים ליצור קובץ לעיבוד, אבל לא ממש לשמור אותו.

  5. אוריקס הגיב:

    יצירת דף XML מתוך הרקורדסט ושמירתו:


    <HTML>
    <HEAD>
    </HEAD>
    <BODY>
    <%
      Dim strConnect
      Dim objConn
      Dim objRec
      dim tab
      Dim xmlpath
      dim sql
        strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
              "Data Source="& Server.MapPath("db.mdb")
      tab = "tbl"
      sql = "select * from " & tab
      Set objRec = Server.CreateObject ("ADODB.Recordset")
      objRec.Open sql, strConnect, 0, 1, 1
      const adPersistXML = 1
      xmlpath = "C:" & tab & ".xml" 'Change This To The Relevant Directory
      objRec.Save xmlPath, adPersistXML
    %>
    Now double-click on <% =xmlPath %> in Explorer
    </BODY>
    </HTML>
    <%
      set tab = Nothing
      set sql = Nothing
      set xmlPath = Nothing

      set strConnect = Nothing
      set objRec = Nothing

    %>

  6. אוריקס הגיב:

    יצירת מסמך ה XML באופן מלא מתוך דף


    <%
    Dim objDom
    Dim objRoot
    Dim objChild1
    Dim objChild2
    Dim objPI
    Set objDom = Server.CreateObject("Microsoft.XMLDOM")
    Set objRoot = objDom.createElement("ASPForum")

    objDom.appendChild objRoot

    Set objChild1 = objDom.createElement("NameOfMember1")
    objRoot.appendChild objChild1

    Set objChild2 = objDom.createElement("NameOfMember2")
    objRoot.appendChild objChild2

    Set objPI = objDom.createProcessingInstruction("xml","version='1.0'")

    objDom.insertBefore objPI, objDom.childNodes(0)

    objDom.Save Server.MapPath("file.xml")
    %>

  7. אוריקס הגיב:

    "יצירת XML זמני בתוך דף ה ASP"
    אין לי משהו מוכן שכתבתי, מחר יהיה לי יותר זמן לדוגמאות…

  8. ניר טייב הגיב:

    זה לא מה שכתבתי למעלה?!
    (תגובה ראשונה של השרשור)

  9. אוריקס הגיב:

    כן,
    אבל זה מן שלוב של סרבר וקליינט… הייתה לי דוגמא של יצירת XML נטו.

  10. ניר טייב הגיב:

    איך אפשר דרך XML לקלוט נתונים מה-DB
    בלי שילוב של הסרבר ?

  11. אוריקס הגיב:

    שאלה טובה
    באקסס אני לא חושב שאפשר רק עם XML, בלי conn ו RS

  12. ניר טייב הגיב:

    אולי התכוונת ל-MSSQL
    שאפשר שם לייצא קובץ XML דרך המסד בלי התערבות ה-ASP ?

  13. אוריקס הגיב:

    MSSQL תומך ב XML הרבה יותר טוב…
    אבל אין ממש קשר. אני לא יודע איך אתה רוצה להתחבר למסד בלי הסרבר..

  14. ניר טייב הגיב:

    ואת הדוגמא שלי אתה לא מפוקק
    (לא רציתי לשים סמיילי כועס )

  15. אוריקס הגיב:

    תן לי להבהיר לך משהו:
    אני ממש ממש לא חייב לפקק לך כלום.
    אם אני לא מפקק יכול להיות שיש לי סיבה טובה, יכול להיות שלא בא לי באותו רגע ואולי משהו אחר עוצר אותי מלעשות את זה. אבל אני לא חייב כלום.

    תבין – כמות הפיקוקים שאתה מקבל לא שווה כלום לעומת האיכות שלהם.
    אל תיהיה רודף כבוד, כי בסוף תשאר בלי כבוד.
    יש אנשים שפוקקו הרבה מאד פעמים (גם פה ובעיקר בתפוז) ואף פעם לא בקשו את זה, הם פשוט פוקקו כי הם מתכנתים מעולים ומגיע להם. לפאק נכנסים לא בגלל הסבר ארוך…

    אני רוצה ליצור פאק איכותי, לא פאק עם הרבה שאלות. אם הייתי רוצה ליצור פאק עם הרבה שאלות תוך יומיים היו לי כבר 1000 במאגר. זה היה עוזר לי במשהו? לא.

    קח את זה כחומר למחשבה, ובבקשה אל תגיב.

שלח תשובה