Chúng tôi dự định di chuyển khung của chúng tôi từ msxml4 sang msxml6. Chúng tôi đang sử dụng msxsl.exe. Dường như chỉ hỗ trợ các phiên bản MSXML tối đa 4.0, dưới dạng dòng lệnh msxsl.exe -u phiên bản 6.0 cho tôi biết. Có sự kế thừa của msxsl.exe không? Bất kỳ bộ xử lý dòng lệnh thay thế nào?kế thừa của msxsl.exe?
Trả lời
Có một số cách bạn có thể thay thế bộ xử lý hiện có, nó chỉ phụ thuộc vào mức độ chức năng bạn yêu cầu và liệu bạn có cần chức năng cụ thể của MSXML hay không. Ví dụ: có xsltproc là một phần của libxslt (ví dụ: có thể lấy một số nhị phân cửa sổ từ ví dụ here). This trang cung cấp cho bạn một sự thay thế nhanh chóng trong C# nhưng cả hai thay đổi việc sử dụng dòng lệnh và có thể không thực hiện cùng một phần mở rộng MSXML (xsltproc chắc chắn không).
Nếu bạn chỉ quan tâm đến một bộ xử lý dòng lệnh đơn giản sử dụng MSXML 6 thì bạn có thể làm tồi tệ hơn việc sử dụng một ứng dụng JScript đơn giản. Lưu đoạn mã sau như xsltr.js và chạy như cscript msltr.js input.xml template.xsl output.txt:
var adTypeBinary = 1;
var adSaveCreateOverWrite = 2;
var adSaveCreateNotExist = 1;
try
{
var args = WScript.Arguments;
if(args.length < 3)
{
WScript.Echo("Usage: xsltr.js file.xml file.xsl output.txt");
WScript.Quit(1);
}
else
{
var xml = args(0);
var xsl = args(1);
var out = args(2);
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
var xslDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
/* Create a binary IStream */
var outDoc = new ActiveXObject("ADODB.Stream");
outDoc.type = adTypeBinary;
outDoc.open();
if(xmlDoc.load(xml) == false)
{
throw new Error("Could not load XML document " + xmlDoc.parseError.reason);
}
if(xslDoc.load(xsl) == false)
{
throw new Error("Could not load XSL document " + xslDoc.parseError.reason);
}
xmlDoc.transformNodeToObject(xslDoc, outDoc);
outDoc.SaveToFile(out, adSaveCreateOverWrite);
}
}
catch(e)
{
WScript.Echo(e.message);
WScript.Quit(1);
}
Tuy là có được một lý do bạn không thể sử dụng msxsl? Phiên bản 4.0 của MSXML chưa bao giờ được cài đặt chuẩn, do đó bạn sẽ luôn phải cài đặt nó theo cách thủ công (mặc dù tôi nghĩ nó đi kèm với Office tại một thời điểm). Bạn có thể không triển khai phiên bản 4 trên các máy bạn cần thực hiện việc xử lý không?
- 1. Thừa kế của javascript
- 2. C#: Thừa kế thừa kế
- 3. Thừa kế thừa kế và thừa kế phương thức
- 4. Java thừa kế vs C# thừa kế
- 5. iPhone - UIImagePickerControllerKho thừa kế kế thừa
- 6. Thừa kế đôi của enable_shared_from_this
- 7. Kế thừa nhiệm vụ Gradle thừa kế
- 8. Thiết kế thừa kế/giao diện của trò chơi
- 9. Giá trị ghi đè kế thừa thừa kế Java
- 10. VBA thừa kế, tương tự của siêu
- 11. C++ thừa kế của mẫu vật (G ++)
- 12. F # và mô hình của thừa kế
- 13. Trang trí và thừa kế của Python
- 14. Thừa kế ảo thuần túy, đa thừa kế và C4505
- 15. Thừa kế bảng đơn hoặc thừa kế bảng lớp?
- 16. Thừa kế tài liệu trong kế thừa lớp Python
- 17. Thực tiễn tốt nhất của Scala: Thừa kế thừa kế và liệt kê
- 18. Thừa kế và generics
- 19. thừa kế ảo
- 20. Thừa kế từ Seq
- 21. Kế thừa drawable selector
- 22. wpf - thừa kế UserControl
- 23. Thừa kế ở mongoose
- 24. QSharedData và thừa kế
- 25. Nhiều thừa kế?
- 26. Lẫn lộn thừa kế
- 27. Extjs đa thừa kế?
- 28. Về thừa kế C#
- 29. C++ thừa kế downcasting
- 30. C# Thừa kế lớp