K@m@l نشر 23 ديسمبر 2015 أرسل تقرير نشر 23 ديسمبر 2015 في ملف xslt ذو الإصدار 1.0 على بيئة #C، أريد إدراج العديد من العناصر المفصولة بفواصل، والممثلة في الملف التالي:<Orders> <Order> <Number>1</Number> <GenerateID>Y</GenerateID> <DeliveryMethods> <DeliveryMethod>Postal</DeliveryMethod> <DeliveryMethod>Mail</DeliveryMethod> </DeliveryMethods> <OrderIdentity>1FTHX26FXVEA28985</OrderIdentity> <Price>100</Price> <Quantity>5</Quantity> </Order> </Orders>وهذه هي محاولتي:<xsl:variable name="DeliveryOptions> <xsl:for-each select="DeliveryMethods/DeliveryMethod"> <xsl:value-of select="DeliveryMethod"/> <xsl:if test="position() != last()"> <xsl:text>,</xsl:text> </xsl:if> </xsl:for-each> </xsl-variable>لكن على ما يبدو أن الأمر لم ينجح؟ كيف أتمكن من فعل ذلك بشكل صحيح؟ اقتباس
0 E.Nourddine نشر 24 ديسمبر 2015 أرسل تقرير نشر 24 ديسمبر 2015 (معدل) سنستعمل وظائف xsl لتحويل مدخلاته input إلى قيم مستخدمةoutput، وذلك باستخراج جميع القيم في ملف:<xsl:output method="xml" indent="yes"/> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <xsl:template match="DeliveryMethods"> <allmethods> <xsl:apply-templates select="DeliveryMethod"/> </allmethods> </xsl:template> <xsl:template match="DeliveryMethod"> <xsl:value-of select="."/> <xsl:if test="position() != last()"> <xsl:text>,</xsl:text> </xsl:if> </xsl:template>قمت باستعمال DeliveryMethods لاستخراج القيم، لنحصل على :<Orders> <Order> <Number>1</Number> <GenerateID>Y</GenerateID> <allmethods>Postal,Mail</allmethods> <OrderIdentity>1FTHX26FXVEA28985</OrderIdentity> <Price>100</Price> <Quantity>5</Quantity> </Order> </Orders>ويمكنك أيضا استعمال الشيفرة التالية لاستخلاص القيم من ملف xsl:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.Xml.Linq; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string xml = "<Orders>" + "<Order>" + "<Number>1</Number>" + "<GenerateID>Y</GenerateID>" + "<DeliveryMethods>" + "<DeliveryMethod>Postal</DeliveryMethod>" + "<DeliveryMethod>Mail</DeliveryMethod>" + "</DeliveryMethods>" + "<OrderIdentity>1FTHX26FXVEA28985</OrderIdentity>" + "<Price>100</Price>" + "<Quantity>5</Quantity>" + "</Order>" + "</Orders>"; XDocument doc = XDocument.Parse(xml); XElement deliverMethod = new XElement("DeliveryMethod",string.Join(",",doc.Descendants("DeliveryMethod").Select(x => x.Value).ToArray())); } } } تم التعديل في 24 ديسمبر 2015 بواسطة E.Nourddine اقتباس
السؤال
K@m@l
في ملف xslt ذو الإصدار 1.0 على بيئة #C، أريد إدراج العديد من العناصر المفصولة بفواصل، والممثلة في الملف التالي:
وهذه هي محاولتي:
لكن على ما يبدو أن الأمر لم ينجح؟ كيف أتمكن من فعل ذلك بشكل صحيح؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.