집 >백엔드 개발 >XML/RSS 튜토리얼 >이미지를 Dom으로 읽어서 xml 파일로 저장합니다.
이미지를 Dom으로 읽어와 xml 파일로 저장
1. 네임스페이스 필요
System.Text 사용
System.IO 사용
System .Xml 사용
2. 001.jpg 이미지가 폴더에 존재합니다
3. docSave.xml 파일 생성
//********************************* { XmlDocument myXmlDoc = new XmlDocument(); myXmlDoc.LoadXml("<picture><name>picture</name></picture>"); XmlElement elem = myXmlDoc.CreateElement("image"); // 打开图片文件,利用该图片构造一个文件流 FileStream fs = new FileStream("../../001.jpg",FileMode.Open); // 使用文件流构造一个二进制读取器将基元数据读作二进制值 BinaryReader br = new BinaryReader(fs); byte[] imageBuffer = new byte[br.BaseStream.Length]; br.Read(imageBuffer,0,Convert.ToInt32(br.BaseStream.Length)); string textString = System.Convert.ToBase64String(imageBuffer); fs.Close(); br.Close(); XmlText text = myXmlDoc.CreateTextNode(textString); myXmlDoc.DocumentElement.AppendChild(elem); myXmlDoc.DocumentElement.LastChild.AppendChild(text); myXmlDoc.Save("../../docSave.xml"); MessageBox.Show("读写结束!"); catch(Exception ex) { MessageBox.Show(ex.ToString()); } //************************************************ //生成后的Xml文档 //****** <picture> <name>picture</name> <image>......</image> </picture> //************************************************* //测试上一程序 //***********
지침: docSave.xml에서 이미지 노드를 읽고 이미지 형식 002.jpg로 저장합니다. .
try { int readByte = 0; int bytesToRead = 1044; XmlTextReader xmlTxtRd = new XmlTextReader("../../docSave.xml"); FileStream fs = new FileStream("../../002.jpg",FileMode.Create); BinaryWriter bw = new BinaryWriter(fs); byte[] base64buffer = new byte[bytesToRead]; while(xmlTxtRd.Read()) { if (xmlTxtRd.NodeType == XmlNodeType.Element && xmlTxtRd.Name == "image") { do { readByte = xmlTxtRd.ReadBase64(base64buffer,0,bytesToRead); bw.Write(base64buffer,0,readByte); } while( bytesToRead<= readByte); } } bw.Flush(); bw.Close(); fs.Close(); xmlTxtRd.Close(); MessageBox.Show("读写结束!"); } catch(Exception ex) { MessageBox.Show(ex.ToString()); }
위 내용은 이미지를 Dom으로 읽어와서 xml 파일로 저장하는 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!