سؤال
أريد أن تطبيق XSLT إلى مستند XML باستخدام C# و إرسال الإخراج إلى ملف.
المحلول
لقد وجدت إجابة ممكنة هنا: http://web.archive.org/web/20130329123237/http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=63
من المقال:
XPathDocument myXPathDoc = new XPathDocument(myXmlFile) ;
XslTransform myXslTrans = new XslTransform() ;
myXslTrans.Load(myStyleSheet);
XmlTextWriter myWriter = new XmlTextWriter("result.html",null) ;
myXslTrans.Transform(myXPathDoc,null,myWriter) ;
تحرير:
ولكن بلدي مضمونة المترجم يقول ، XslTransform
عفا عليه الزمن:استخدام XslCompiledTransform
بدلا من ذلك:
XPathDocument myXPathDoc = new XPathDocument(myXmlFile) ;
XslCompiledTransform myXslTrans = new XslCompiledTransform();
myXslTrans.Load(myStyleSheet);
XmlTextWriter myWriter = new XmlTextWriter("result.html",null);
myXslTrans.Transform(myXPathDoc,null,myWriter);
نصائح أخرى
استنادا إلى دارين ممتاز الإجابة ، علما أن هذا القانون يمكن اختصارها بشكل كبير باستخدام المناسبة XslCompiledTransform.تحويل الزائد:
var myXslTrans = new XslCompiledTransform();
myXslTrans.Load("stylesheet.xsl");
myXslTrans.Transform("source.xml", "result.html");
(آسف على طرح هذا كإجابة ، ولكن code block
الدعم في تصريحات محدودة نوعا ما.)
في VB.NET أنت لا تحتاج حتى متغير:
With New XslCompiledTransform()
.Load("stylesheet.xsl")
.Transform("source.xml", "result.html")
End With
هنا هو البرنامج التعليمي حول كيفية القيام تحويلات XSL في C# على MSDN:
http://support.microsoft.com/kb/307322/en-us/
و هنا كيفية كتابة الملفات:
http://support.microsoft.com/kb/816149/en-us
مجرد ملاحظة جانبية:إذا كنت تريد أن تفعل التحقق أيضا هنا هو آخر تعليمي (على DTD, والسل الشديد المقاومة للأدوية ، XSD (=مخطط)):
http://support.microsoft.com/kb/307379/en-us/
أضفت هذا إلى توفير المزيد من المعلومات.