xml转换成vcf 魅族手机通讯录Contact.xml备份在flyme上的恢复(Java/C#实现xml转vCard)

分类:杂谈| 发布:佚名| 查看: | 发表时间:2014/6/10

由上一篇的备份M9数据到SD卡上,研究了一下才发现,之前备份了通讯录是在手机的Backup文件夹下,文件Contact/Contact.xml,而flyme不再支持Contact.xml的恢复。但是flyme支持vCard格式(*.vcf)导入。

对于一只程序猿来说,解决这个问题的方法必须是自己写程序。

于是研究了一下魅族通讯录备份文件Contact.xml和vCard(vcf)格式。

Contact.xml:<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

M9

1.0.1

郑州网建

郑州网建

郑州网建

李四

李四

李四

vCard:BEGIN:VCARD

VERSION:2.1

FN:郑州网建

TEL;CELL:15100000000

END:VCARD

BEGIN:VCARD

VERSION:2.1

FN:李四

TEL;CELL:15155555555

END:VCARD

Contact.xml转vcf文件(Java):

public static void main(String[] args) throws DocumentException, IOException

{

// DOM4J读取Contact.xml文件

SAXReader reader = new SAXReader();

Document document = reader.read(new File("H:\\Backup\\20130422200137M9\\Contact\\Contact.xml"));

Element root = document.getRootElement();

// 联系人List

List> contacts = root.elements("Contact");

// vcf文件内容

StringBuilder sb = new StringBuilder();

// 遍历xml中的每个联系人,往vcf字符串中追加

for(Object contactObj : contacts)

{

Element eleContact = (Element) contactObj;

String name = eleContact.elementText("DisplayName");

String number = eleContact.element("PhoneElement").attribute("Value").getValue();

sb.append("BEGIN:VCARD\nVERSION:2.1\n");

sb.append("FN:");

sb.append(name);

sb.append("\nTEL;CELL:");

sb.append(number);

sb.append("\nEND:VCARD\n");

}

// 字符串写入vcf文件

FileUtils.writeStringToFile(new File("H:\\test.vcf"), sb.toString(), "utf-8");

}

上面的代码需要两个jar文件:dom4j-1.6.1.jar和commons-io-2.4.jar。

最后把生成的vcf文件拷贝到手机中,在手机中打开这个vcf文件,就可以恢复以前所有的联系人了。

由于vCard文件比较通用,所以上面的代码应该还能实现魅族的Contact.xml备份导入联系人到魅族MX或者其他各种支持vCard的手机中。

java手机通讯录格式转换_xml转换成vcf 魅族手机通讯录Contact.xml备份在flyme上的恢复(Java/C#实现xml转vCard)...相关推荐

  1. java代码在u盘里面运行_在u盘安装有jdk,在win7系统上怎么运行java程序

    java程序的运行时需要环境的. java程序的运行环境就是JRE,你说的JDK其中也包含了JRE所以java程序可以运行,但是JDK中还包含有用于开发java程序所用到的工具,而这些JRE中是没有的 ...

  2. 手机怎样转换php格式,手机视频格式转换方法适合所有手机视频格式转换|如何转换手机视频格式...

    怎么转换手机视频格式,是不是所有类型的手机视频格式都支持转换?是的!!!狸窝全能视频转换器支持所有手机视频格式转换,并且转换步骤也非常简单,可以说狸窝视频转换器是目前网上最简单易用功能强大的视频格式转 ...

  3. Java中Date数据类型的数值转换

    Java 与 MySQL 交互的数据类型 java1.1时,从 MySQL 中查询出来的时间日期类型,都放在 java.util.Date 类型里面了,但是这个类提供的时间操作函数太少,一般都需要转换 ...

  4. java 序列化 文件_一种恢复Java序列化文件数据的方法与流程

    本发明涉及信息安全技术领域,特别涉及一种恢复Java序列化文件数据的方法. 背景技术: 在数据解析恢复领域经常会遇到序列化文件的解析.Java序列化是Java 自身提供的一种数据序列化方式,它允许开发 ...

  5. 解决小米,魅族手机打开悬浮窗口问题

    当开启一个悬浮窗口时,发现三星,华为都能够开启,无论系统为android4.4.4.android5.1.1还是android6.0,但是当用小米手机或者魅族的时候发现打不开了,检查manifest中 ...

  6. 魅族手机调试出现is waiting for debugger的问题解决

    今天是在公司上班的第一天,公司竟然都没给看代码的时间,直接让临阵磨枪,亚历山大...测试组发来几个bug让我解决,姐姐们,我都没看代码就让我解决问题,真是信任我啊- -.能有什么办法呢,查资料解决吧. ...

  7. Android动态权限(兼容6.0以下和魅族手机方案)

    Android动态权限(兼容6.0以下和魅族手机方案) 这里以照相机权限为例说明问题.实际开发过程中遇到了不少的坑. 1.一般情况下,6.0以上的手机: ①判断是否具有某项权限: ContextCom ...

  8. java手机通讯录格式转换_通讯录格式转换器设计与开发(JAVA平台)

    通讯录格式转换器设计与开发(平台)(任务书,开题报告,文献综述,中期检查表,外文翻译,毕业论文17000字,程序代码) 本文从当前社会人们需求出发,首先介绍了人们在处理手机信息和网络信息交互时的极大不 ...

  9. cad导出pdf_如何使用CAD手机看图软件将DWG格式图纸文件转换成PDF格式?

    在使用CAD手机看图软件修改好CAD图纸后想要发送给其他人,怎么将手机中DWG格式图纸文件转换成PDF格式呢?接下来就给大家介绍一下CAD手机看图软件浩辰CAD看图王手机版中将DWG格式图纸文件转换成 ...

最新文章

  1. java学生-成绩关联实体_java毕业设计_springboot框架的学生成绩智能管理
  2. C# 如何在PDF文档中创建表格
  3. 【干货】常用的Linux 系统备份、恢复命令
  4. React Native工程修改Android包名
  5. php后端路由,laravel实现前后台路由分离的方法
  6. Chilkat -- python又一个强大的库
  7. 关于wow(mangos模拟器) 的物品生成器---wowItemEdit 1.0
  8. 12、添加和删除页码符号
  9. 如何选择一个合适的物联网模块
  10. 图片下载器爬虫 ItemLoader
  11. leetcode 给我上了深深的一课,被删掉所有题解后的我感动了
  12. qemu里pci设备的热插拔
  13. 网络营销理论模型_15种流行的在线营销促销形式 网络营销专业项目
  14. 区块链学习到底学什么?需要去区块链培训机构吗?
  15. java计算机毕业设计中医药科普网站源码+mysql数据库+系统+部署+lw文档
  16. VS2012 + MFC 创建新的对话框窗口(初学)
  17. 时代新威专业等级保护测评机构为您解读:2020年最新《定级指南》
  18. 我有300万存支付宝的余额宝,可以实现财富自由吗?
  19. git提交,IDEA中发现有的文件名变成蓝色,将蓝色变成白色的解决方法
  20. SpringBoot Starter介绍以及实例

热门文章

  1. 图解css3:核心技术与案例实战. 2.11 属性选择器
  2. 知名互联网公司 Java 开发岗面试知识点解析
  3. 我的程序员之路03:我和大数据
  4. 浅谈单反相机中什么是光圈 光圈的作用是什么?
  5. 类微信APP,移动互联网第三大入口?
  6. python3 使用selenium爬取QQ空间说说信息
  7. 企业微信如何简单实现定时发送文件到群:企业微信群机器人操作(Java代码实现)
  8. 北鼎推出珐琅锅系列打破外国高端品牌垄断格局;百胜中国加入科学碳目标倡议进一步深化应对气候变化行动 | 知消...
  9. i5 12400性能怎么样 酷睿i512400核显相当于什么水平
  10. 一位it码农北京or深圳工作的选择