Tôi muốn chèn hình ảnh trong một phần tử tệp XML, cách tốt nhất để làm điều này là gì? Bạn vui lòng đề xuất một số cách hay để đưa hình ảnh vào tệp xml?Chèn hình ảnh vào tệp XML
Trả lời
Cách phổ biến nhất để thực hiện việc này là bao gồm nhị phân làm cơ số 64 trong phần tử. Tuy nhiên, đây là giải pháp thay thế và thêm một chút khối lượng vào tệp.
Ví dụ, đây là byte 00-09 (lưu ý chúng tôi cần 16 byte để mã hóa 10 byte giá trị của dữ liệu):
<xml><image>AAECAwQFBgcICQ==</image></xml>
cách bạn làm mã hóa này khác nhau tùy theo kiến trúc. Ví dụ: với .NET, bạn có thể sử dụng Convert.ToBase64String
hoặc XmlWriter.WriteBase64
.
Vì XML là định dạng văn bản và hình ảnh thường không (ngoại trừ một số định dạng cổ và cổ) không có cách nào thực sự hợp lý để làm điều đó. Nhìn vào những thứ như ODT hoặc OOXML cũng cho bạn thấy rằng chúng không nhúng hình ảnh trực tiếp vào XML.
Tuy nhiên, bạn có thể chuyển đổi nó thành Base64 hoặc tương tự và nhúng nó vào XML.
Việc xử lý khoảng trắng của XML có thể làm phức tạp thêm nhiều thứ trong các trường hợp như vậy.
XML không phải là định dạng để lưu trữ hình ảnh, không phải dữ liệu nhị phân. Tôi nghĩ tất cả phụ thuộc vào cách bạn muốn sử dụng những hình ảnh đó. Nếu bạn đang ở trong một ứng dụng web và muốn đọc chúng từ đó và hiển thị chúng, tôi sẽ lưu trữ các URL. Nếu bạn cần gửi chúng đến một điểm cuối web khác, tôi sẽ tuần tự hóa chúng, thay vì kiên trì theo cách thủ công trong XML. Hãy giải thích kịch bản là gì.
Tôi luôn chuyển đổi dữ liệu byte thành mã hóa Base64 và sau đó chèn hình ảnh.
Đây cũng là cách Word thực hiện, cho các tệp XML của nó (không phải từ đó là một ví dụ tốt về cách làm việc với XML: P).
Dưới đây là một số mã được lấy từ Kirk Evans Blog minh họa cách mã hóa hình ảnh trong C#;
//Load the picture from a file
Image picture = Image.FromFile(@"c:\temp\test.gif");
//Create an in-memory stream to hold the picture's bytes
System.IO.MemoryStream pictureAsStream = new System.IO.MemoryStream();
picture.Save(pictureAsStream, System.Drawing.Imaging.ImageFormat.Gif);
//Rewind the stream back to the beginning
pictureAsStream.Position = 0;
//Get the stream as an array of bytes
byte[] pictureAsBytes = pictureAsStream.ToArray();
//Create an XmlTextWriter to write the XML somewhere... here, I just chose
//to stream out to the Console output stream
System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(Console.Out);
//Write the root element of the XML document and the base64 encoded data
writer.WriteStartElement("w", "binData",
"http://schemas.microsoft.com/office/word/2003/wordml");
writer.WriteBase64(pictureAsBytes, 0, pictureAsBytes.Length);
writer.WriteEndElement();
writer.Flush();
- 1. Chèn hình ảnh vào tệp xml bằng cách sử dụng C#
- 2. Chèn hình ảnh vào ggplot2
- 3. Chèn hình ảnh vào openpyxl
- 4. Chèn hình ảnh vào tiện ích chrome
- 5. cách chèn hình ảnh vào mẫu email
- 6. Chèn vào cây Zipper trên các tệp XML trong Clojure
- 7. Chèn dữ liệu vào tệp XML bằng PHP DOM
- 8. Chèn hình ảnh vào cơ sở dữ liệu
- 9. Chèn hình ảnh Three.js
- 10. Chèn hình ảnh vào ô bảng trong Javascript
- 11. Cách chèn Hình ảnh vào Siêu liên kết trong GWT
- 12. Có thể chèn hình ảnh vào nhận xét mã không?
- 13. Làm cách nào để chèn hình ảnh với iTextSharp vào một tệp PDF hiện có?
- 14. Hình ảnh ràng buộc tải chậm vào hình ảnh mới được chèn sau yêu cầu ajax
- 15. How Do You Chèn XML vào một nút XML hiện
- 16. Tạo hình ảnh và một số tệp cấu hình như tệp txt và xml với pyinstaller
- 17. Thêm hình ảnh vào UITextView
- 18. VBA để chèn hình ảnh nhúng excel
- 19. Chèn tệp vào mysql Blob
- 20. Lưu tệp hình ảnh vào sql Máy chủ và chuyển đổi mảng byte thành hình ảnh
- 21. Chèn một đoạn văn bản vào ảnh png
- 22. Chèn hình ảnh bằng PHP và FPDF
- 23. DOM appendChild để chèn hình ảnh
- 24. Doctrine2 - Nhiều lần chèn vào một ảnh
- 25. Cách thêm khung hình và chèn văn bản vào hình ảnh?
- 26. cách thêm hình ảnh jpg vào Latex
- 27. Hình nền Android trong Tệp XML
- 28. Đọc tệp XML vào XmlDocument
- 29. Hình ảnh liên kết với hình ảnh được thêm vào tệp resx bằng XAML
- 30. Làm cách nào để chèn hình ảnh vào tài liệu .rnw
Tôi đang nói về các tệp XML Word bạn có thể nhận được khi bạn "Lưu dưới dạng" XML "". –
Tôi đã sửa. Tuy nhiên, tôi chưa bao giờ thấy bất cứ ai sử dụng điều đó (hãy để một mình xem các tập tin đó trong tự nhiên). – Joey