שאלה לגבי xpathnavigaor and xsl

gadic10

New member
שאלה לגבי xpathnavigaor and xsl

אני מעוניין להמיר קובץ xml. לפני השליחה של הקובץ להמרה אני מעוניין לעשות שאילתא כלשהי ב xpath. לאחר השאילתא אני יוצר קובץ xpathnavigator נוסף שיכיל את התוצאות של השאילתא באמצעות clone. הבעיה היא שאני מקבל במסמך הסופי את כל התוצאות ולא רק את אלו שביקשתי בשאילתא . להלן הקוד
<%@ Page Language="VB" %> <%@ import Namespace="System.Xml" %> <%@ import Namespace="System.Xml.XPath" %> <%@ import Namespace="System.Xml.Xsl" %> <%@ import Namespace="System" %> <%@ import Namespace="System.IO" %> <script runat="server"> sub Page_Load(obj as object, e as eventargs) dim objDoc as new xpathdocument (server.mappath("fun.xml")) dim objnav as xpathnavigator=objdoc.createnavigator dim objN as xpathnodeiterator= objnav.select("FUN/CATEGORY[@TYPE='מסעדות ובתי קפה']") Dim clone as XPathNavigator = objn.current.Clone() Dim objXSLT As XslTransform = New XslTransform() objXSLT.Load(Server.MapPath("fun.xsl")) Dim HTMLoutput as string Dim writer as StringWriter = new StringWriter() objXSLT.Transform(clone, nothing, writer, nothing) HTMLoutput = writer.ToString() lbl1.text=HTMLoutput end sub </script> <html> <head> </head> <body> <asp:Label id="lbl1" runat="server" maintainstate="false"></asp:Label> </body> </html>​
 

nattygur

New member
אם אתה עובר על xpathnodeiterator

ע"י שימוש ב MoveNext אתה מקבל מה שאתה רוצה ? אם לא בדוק את השאילתה שלך.
 

gadic10

New member
החלטתי לנקוט בגישה שונה

אני רוצה להעביר בעזרת השיטה AddParam של האובייקט XsltArgumentList ערך לדף xsl . הכוונה לחלק בקובץ xsl שנראה כך :
<xsl: param name=myvar select=xpath expression template body </xsl:param>​
הצלחתי להעביר משתנה שהוא מחרוזת. מה שלא הבנתי ולא מצאתי הוא איך להעביר מידע לחלק של select
 
למעלה