פרמטרים ב XSL

yaronshapira

New member
פרמטרים ב XSL

הי פורום, יש לי בעיה עם פרמטרים ב XSL. יש לי XML כזה:
<MyXML> <A>Something</A> </MyXML>​
ב XML הזה יש לפעמים את תג A לפעמים את B, לפעמים C וכו´ וכו´... אני רוצה להריץ על ה XML הזה XSL שיקבל את האלמנט (A או B או C או ...) כפרמטר. משהו בסגנון הזה:
<xsl:param name="MyParam"/> . . <xsl:value-of select="$MyParam"/>​
הבעיה היא שכשאני מריץ את זה זה מדפיס לי את הערך ששלחתי כפרמטר (כלומר A או B או ...) ולא את מה שיש באלמנט A שביקשתי (Something). מישהו יודע מה אני צריך לעשות? תודה, ירון
 
איך הכנסת ערך לפרמטר?

תעלה לפה את הקוד - אולי יש טעות בהכנסת הערך לפרמטר, או בהגדרה של הטמפלט...
 

yaronshapira

New member
צירפתי את הקוד

זה ה XML. אני מנסה ליצור מזה Options כדי להציג ב ComboBox. הענין הוא שאת שמות השדות (Code ו Description) אני רוצה לקבל כפרמטרים. כי לפעמים הם נקראים בשמות אחרים (לדוג´, Element_Code, Element_Name)
<MyXML> <Item> <CODE>1</CODE> <DESCRIPTION>num1</DESCRIPTION> </Item> <Item> <CODE>2</CODE> <DESCRIPTION>num2</DESCRIPTION> </Item> </MyXML>​
וזה ה Xsl. יש כאן פרמטר רק על ה Description.
<? xml version="1.0" encoding="windows-1255" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" .......> <xsl:eek:utput method="html" encoding="windows-1255" indent="yes" omit-xml-declaration="yes"/> <xsl:param name="MyValue" /> <xsl:template match="/"> <xsl:for-each select="//Item"> <xsl:element name="OPTION"> <xsl:attribute name="value"> <xsl:value-of select="CODE" /> </xsl:attribute> <xsl:value-of select="$MyValue" /> </xsl:element> </xsl:for-each> </xsl:template> </xsl:stylesheet>​
אני מכניס את הפרמטר ע"י הפונקציה AddParameter שאני מפעיל על ה StyleSheet לפני הפעלת הטרנספורמציה. לחילופין לצורך בדיקות אני שם את הערך בתוך התג של הפרמטר,
<xsl:param name="MyValue">//DESCRIPTION</xsl:param>​
תודה, יום טוב, ירון
 
אתה בטוח שככה נותנים ערך לפרמטר?

לא בעזרת xsl:with-param? או ע"י select :
<xsl:param name="MyValue" select="//DESCRIPTION"/>​
?
 

yaronshapira

New member
אני שולח פרמטר מה ASP

אני נותן את הערך לפרמטר מדף ה ASP לא מבתוך ה XSL. אני רוצה שכל פעם דף ה ASP יתן ל XSL פרמטר אחר. אני מעביר את הפרמטר מבחוץ ע"י הפונקציה AddParameter של VB או של VBS. את הגדרת הפרמטר בתוך ה XSL אני מבצע כפי שציינתי למעלה. אם שמים את הערך ב Select כמו שעשית זה עובד על הכיף-כיפק, אבל זה לא המצב כשמכניסים את הערך מבחוץ (מה ASP) כפי שתיארתי. במקרה הזה מתעוררת הבעיה כפי שציינתי.
 
אז כנראה שם הבעיה ../images/Emo13.gif

אני לא כ"כ עוזר, הא?
אז כנראה באמת הבעיה בהעברת הפרמטר בעזרת AddParameter... אתה בטוח שהסינטקס נכון? אולי הפכת את שם הפרמטר והתוכן שלו? תעלה את הקוד לפה, אולי זה סתם משהו קטן.
 

meronf

New member
החלפת פרמטר

ראה דוגמא בקישור איך אני מעביר פרמטר מASP לXSL
 
אבל למה לא עובד עם param... פאקטו?

אבל מעניין אותי למה הדרך המקורית לא ל yaronshapira. אתה לא מעביר פרמטר - אתה משנה ערך של Attribute, וגם הקוד שלך הוא די IE-Oriented... אם אני לא טועה xsl:script זה הרחבה של מיקרוסופט, לא? הוא רוצה להשתמש בפרמטר רגיל של XSL, לא ברור למה זה לא עובד... דון פאקטו - רעיון?
 

yaronshapira

New member
תשובה ל meronf

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