עזרה בXML וXSL

עזרה בXML וXSL

איך אני יכול לשנות STYLESHEET בעזרת JAVASCRIPT (ע"י לחיצה על כפתור לדוגמא) שמקושר לקובץ XML? אני רוצה שיהיו לי שני גיליונות עיצוב (XSL ולא CSS) ושאוכל להחליף בינהם בזמן השימוש דרך הדפדפן. ועוד משהו למה הפרסומת פלאש המחורבנת של הטובורג מסתירה לי חצי מהפורום כשאני גולש עם מוזילה? תודה מראש על כל תשובה. ברק. אם ההועדה הזאת נשלחה מספר פעמים אני מצטער זה באג במוזילה.
 
תשובות

בנוגע לריבוי התצוגות, אתה יכול למתג את התצוגות. אם אתה רוצה לעשות זאת באיזור ה-Client - אתה יכול לטעון את ה-XML ואת ה-XSL-ים לזיכרון ואז למתג ביניהם בשגרת ה-Java Script. שים לב שבשיטה הזו הכל מתבצע באיזור ה-Client, אך צריכים להיות שם רכיבים מתאימים. אם אתה רוצה באיזור ה-Server - אתה יכול לתת ל-ASP/JSP פרמטר שמורה לו באמצעות איזה XSL לבצע טרנספורמציה בצד השרת והדפדפן מקבל HTML. בנוגע לפרסומת פלאש - תפוז, בעיקרון, תומכים ב-IE משיקולים שונים ומשונים כך שבמוזילה עשויות להיות בעיות בעת הגלישה.
 
האם יש דרך אחרת לעשות זאת?

כלומר השאלה שלי היא האם יש דרך לעשות זאת כמו HTML ו CSS אני אתן דוגמא אם יש לי קובץ HTML וקובץ CSS אין לי בעיה לשלב בינהם דרך קריאה בעזרת תג כמו <link rel="stylesheet" href="STYLE1.css" type="text/css"> שנמצא בקובץ ה HTML ויצביע על קובץ העיצוב STYLE1.CSS מה שאוכל לעשות בקלות הוא לשנות את י HERF כדי שיצביע על קובץ עיצוב אחר בעזרת JS EVENT כלשהו. בצורה המקבילה יש לי קובץ XML וXSL שמשולבים בדרך דומה <?xml-stylesheet type="text/xsl" href="STYLE1.xsl"?> הXML יעבור טרנספורמציה ללא שימוש בשום סקריפט נוסף(לא ASP ולא JS ) הדפדפן יעשה זאת בעצמו. השאלה שלי בעצם האם אוכל לשנות בעזרת JS EVENT את ה HERF כמו שאפשר לעשות זאת בHTML איני מעוניין להשתמש כמו שכבר הציעו לי בעבר בPARSER חיצוני כמו ה XML PARSER של מיקרוסופט, הסידור הנוכחי כפי שהדפדפן עושה זאת נוח לי מאד.
 
הבהרות ושאלה

כאשר אתה אומר שהדפדפן יעשה זאת בעצמו, מי שעושה זאת למעשה הוא אותו מנוע XSLT PROCESSOR של מקרוסופט (זה שאתה קורא לו חיצוני), כך שמדובר באותו הדבר. אגב, לידע כללי, אם אינני טועה, כאשר אתה מבקש מהדפדפן שיבצע את הטרנספורמציה בצורה כזו, הוא לא משתמש ב-XSLT PROCESSOR של MSXML 4, אלא בגירסא הקודמת המותקנת. ראוי לציין, שהמנוע של 4 הוא מהיר הרבה יותר (בין פי 4 לפי 8, לפי פרסומי מקרוסופט). יש למעשה מספר אפשרויות, אבל כיוון שמדובר, כאמור, באותו ה-PROCESSOR, מה דעתך לשקול את ההצעה המקורית מחדש ? היא נשמעת לי הפשוטה ביותר, בלי לסבך אותך עם XSL-ים בתוך XSL, סיבוך של ה-XSL ושאר שיטות. אגב, למרות שהתקן של ה-W3C מתיר להשתמש במספר PI של style sheets, אינטרנט אקספלורר 5 ומעלה משתמש בראשון שהוא מוצא (עם הסוג text/xsl).
 
אשמח דווקא לשמוע על הפתרון השני

זה מדהים פשוט עד כמה אנשים לא מוכנים לשחרר מהMSXML הזה של מיקרוסופט זה כאילו שזה הפתרון היחיד. תשמע אני מעוניין לדבוק כאן בפתרון שיאפשר לי להפעיל את העבודה שלי איפה שאני רוצה. הפתרון ה"מקורי" (שאגב כל מי שניסה לעזור לי הציע להשתמש בו) בעצם רק מסבך אותי מכמה סיבות. 1 זה כתיבה של סקריפט מיותר 2 זה עירוב קובץ מיותר נוסף (HTML) שאין לי צורך בו 3 זה פתרון שיעבוד רק ב אקספלורר לווינדוס (לא מאפשר לי להריץ על לינוקס או על מק וממש לא על מוזילה שהוא הדפדפן המועדף עלי) וזו הסיבה העיקרית אני דיי בטוח שיש דרך אחרת חוץ מלעביר את זה דרך ה PARSER של מיקרוסופט או כל PARSER חיצוני אחר ודווקא כן הייתי מעוניין מאד (אם כמובן לא אכפת לך) לשמוע את רעיון ה XSL-ים בתוך XSL ה"מסובך" שנשמע לי אישית כבר יותר מקורי אה ואגב שאני אומר שהדפדפן עושה זאת בעצמו אני לא מתכוון בהכרח לאקספלורר כי אני אישית משתמש במוזילה שכמובן אינו משתמש במנוע של מיקרוסופט. בכל מקרה תודה על העזרה.
 
אני חושב שאני צריך להבהיר שוב

ראשית, אתה חייב להשתמש ב-XSLT PROCESSOR כלשהו. משהו חייב לעשות את הטרנספורמציה. אין כזה דבר "חיצוני" - ישנם רכיבים בצד השרת ובצד ה-client ואתה אמור לבחור במה להשתמש. אם ירדתי לסוף דעתך, אני חושב שהפתרון המתאים לך הוא לבצע טרנספורמציות בצד השרת ואז הדפדפן מקבל HTML. אם נתייחס לסיבות שלך, נראה שזה הפיתרון הטוב ביותר (למיטב הכרתי את צרכיך, כמובן) - 1. כתיבה של סקריפט מיותר - בצורה זו אתה תכתוב קוד מאוד פשוט וקצר. בכל שיטה אחרת, אתה תכתוב הרבה יותר ותזיע. 2. עירוב קובץ מיותר נוסף - כמעט בכל קונפיגורציה, תצטרך קובץ נוסף או שתיאלץ לנפח (ולסבך את הקבצים הקיימים). בצורה זו תכתוב קובץ אחד שינהל את המיתוג בצורה מאוד פשוטה. מאוד קל לבנייה, לשינוי, להרחבה ולתחזוקה. 3. כיוון שמדובר על תצוגה, חשוב מאוד שהיא תראה אותו הדבר בכל ערוץ הפצה. אם באמת תסתמך על ה-PROCESSORS בצד ה-CLIENT תגלה שונות רבה בין דפדפנים ואף בין גרסאות של דפדפנים. מאוד לא מומלץ. לכן, המלצתי לך על טרנספורמציה בצד השרת עם PROCESSOR שאתה רוצה (בין אם טכנולוגיות מקרוסופט ובין אם טכנולוגיות ג´אווה) ואז לדפדפן יורד קובץ HTML. מה שאומר שאתה, באופן עקרוני, תומך בכל דפדפן בעולם - כולל הישנים שבחבורה. אם תסתמך, כמו שאתה רוצה על ה-PROCESSOR של הדפדפן, לא תוכל לתמוך בדפדפנים ישנים (שלא לדבר על דפדפני יוניקס ותיקים). איך עכשיו ?
 
כנראה שלא הבהרתי את עצמי שוב

ברור לי שאני חייב להשתמש ב XSLT PROCESSOR כלשהו אבל מה שקיים במוזילה ואקספלורר 6 מספיקים לי משרתים את הצרכים שלי במדוייק.(האמת יש סיכויי שאני אפילו לא אצטרך את האקספלורר אבל זה סיפור אחר) בעיקרון אני בינתים מתלמד כי כל העניין דיי חדש לי ואני מנסה ליישם רעיון כלשהו. ואני בכלל לא רוצה לעלות את זה על שום שרת בשלב זה. זה ממש לא מוכן. בין כה וכו התוצאה של העבודה שלי אחרי הטרנספורמציה לא תעבוד בשום דפדפן מתחת לגרסא 5 מכיוון שאני משתמש ב JS DOM LEVEL1 וב CSS (ויש עוד דברים שלא עובדים אפילו באקספלורר 6 מכיוון שאין לו תמיכה מלאה אפילו בסטנדרטים האלה) בעוד שלעשות את הטרנסורמציה דרך השרת זה בהחלט דרך טובה (למקרים רבים עם XML שאני בהחלט ארצה להתנסות בה בעתיד) זה לא מתאים לעבודה שאני עושה וזה רק יאט את כל העסק. בקיצור אני מאד מאד אשמח אם תוכל להסביר לי על הפתרונות האחרים, במיוחד אם הם דבקים לחוקים ולכללים של ה W3C כך יש סיכויי גבוהה שהפתרון יעבוד במוזילה ( שזה הדבר שהכי חשוב לי כרגע ).
 

meronf

New member
הנה פתרון

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

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