如何通过linq查询从XML文件中获取特定图像 [英] How to get specific image from XML file through linq query

查看:79
本文介绍了如何通过linq查询从XML文件中获取特定图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<?xml version="1.0" encoding="utf-8" standalone="yes"?>







<Employees>
<Employee>
    <ID>104</ID>
    <Name>Sumit</Name>
<<Image>Bytes.............</Image>
  </Employee>
  <Employee>
    <ID>105</ID>
    <Name>Ravi</Name>

<Image>Bytes.............</Image>
  </Employee>
</Employees>





代码: -







code :-


private void button2_Click(object sender, EventArgs e)
      {
          XDocument doc = XDocument.Load("XMLFile/PrintLabelList.xml");
          var records = (from lablemname in doc.Root.Elements("Employee")
                         select new
                         {
                             Image = (string)lablemname.Element("Image").Value
                         }).FirstOrDefault();
          if (records != null)
          {
              string val = records.Image;
              byte[] bytes = Convert.FromBase64String(val);
              MemoryStream mem = new MemoryStream(bytes);
              Bitmap bmp2 = new Bitmap(mem);
              pictureBox1.Image = bmp2;
          }
      }





我尝试了什么:



如何从xml文件中获取特定图像



What I have tried:

How to get specific image from xml file

推荐答案

您必须从XML文档中获取更多字段。

此处还收集了ID和名称。

You must grab some more fields from your XML document.
Here also ID and Name are collected.
XDocument doc = XDocument.Load("XMLFile/PrintLabelList.xml");
var records = (from lablemname in doc.Root?.Elements("Employee")
   select new
   {
      ID = lablemname.Element("ID")?.Value,
      Name = lablemname.Element("Name")?.Value,
      Image = lablemname.Element("Image")?.Value,                   
   });



您可以轻松获得任何希望的项目,例如通过其ID


You can then easily get any wished item e.g. by its ID

var item = records.FirstOrDefault(x => x.ID == "104");



可以像这样访问图像字节:


The image bytes can be accessed like this:

var imageBytes = item?.Image;


这篇关于如何通过linq查询从XML文件中获取特定图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆