编程以来一直用网易有道词典查单词、翻译;最近一直在看英文方面的资料,于是越来越对有道词典(划词、广告,本来想转灵格斯的,但灵格斯没有android版)不满意,一番试用后决定转bing词典,于是想把有道单词本里的单词导出

再导入bing词典,但操作后才发现有道词典导出的xml和bing词典的xml格式和节点不一样,但我执意要换为bing词典,没办法只好自己自己动手写一个php将有道的xml转为bing词典能导入的xml。

数组转xml是在网上找的,虽然简单,但功能还行。

下面是代码:

<?php
// 有道词典xml 转为bing词典可以导入的xml /**
* 把数组转化为xml,数字索引只支持一维,数字索引和字符索引不能混合
*
* @param array $array
* @return string
*/
function arrayToXML($array)
{
$str_xml = "";
if (is_array($array) && !empty($array)) {
$has_number_key = false;
foreach ($array as $key => $value) {
$parent_key = @func_get_arg(2);
if (is_integer($key)) {
$has_number_key = true;
if (is_integer($parent_key)) {
throw new Exception('数字索引只支持一维');
}
if (empty($parent_key)) {
$parent_key = $key;
} else {
if ($parent_key{strlen($parent_key) - 1} == 's') {
$parent_key = substr($parent_key, 0, strlen($parent_key) - 1);
}
}
$str_xml .= "<$parent_key>" . arrayToXML($value,$key, $parent_key) . "</$parent_key>";
} else {
if ($has_number_key) {
throw new Exception('数字索引和字符索引不能混合');
} $parent_key = $key;
$str_xml .= "<$key>" . arrayToXML($value,$key, $parent_key) . "</$key>";
}
}
} else {
$key = func_get_arg(1);
if (strpos($array, '<') !== false) {
return '<![CDATA[' . $array . ']]>';
}
if (is_array($array) && empty($array)) {
return '';
}
return $array ;
}
return $str_xml;
} $xmlObject = simplexml_load_file("youdao.xml");
$item = $xmlObject->item;
$datas = array();
for($i=0;$i<$item->count();$i++){
$trans = trim(strval($item[$i]->trans));
if(!empty($trans)){
//去除没有解释的单词、否则导入bing词典报错
$datas['Phrases'][$i]['Eng']= strval($item[$i]->word);//读取xml每项值
$datas['Phrases'][$i]['Phonetic']= strval($item[$i]->phonetic);
$datas['Phrases'][$i]['Defi']= str_replace(array(';','\n'),array(';',''),strval($item[$i]->trans)); //中文分号替换
$datas['Phrases'][$i]['Date']= date("Y-m-d H:i:s");
}
}
//构建xml
$xml = '<?xml version="1.0"?><FCVocaPhraseList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">';
$xml .= arrayToXML($datas);
$xml .= '</FCVocaPhraseList>';
header('Content-Type: text/xml');
echo $xml;

php 生成bing词典能导入的xml(有道词典->bing词典)的更多相关文章

  1. Excel 数据导入SQL XML 自动生成表头

    去出差的时候应客户要求要要将Excel 文件内的数据批量导入到数据库中,而且有各种不同种类的表格,如果每一个表格多对应一个数据表的话, 按照正常的方法应该是创建数据表,创建数据库中映射的数据模型,然后 ...

  2. hibernate 联合主键生成机制(组合主键XML配置方式)

    hibernate 联合主键生成机制(组合主键XML配置方式)   如果数据库中用多个字段而不仅仅是一个字段作为主键,也就是联合主键,这个时候就可以使用hibernate提供的联合主键生成策略. 具体 ...

  3. Android开发——自动生成Android屏幕适配的dimens.xml文件

    使用dimens.xml解决屏幕适配问题是Android官方解决方案,本文主要讲述了如何自动生成Android屏幕适配的dimens.xml,减少了工作量,在维护dimens.xml文件时更加省时省力 ...

  4. tool - 支持TestLink 1.93,将excel格式用例转化成可以导入的xml格式

     tool - 支持TestLink 1.93,将excel格式用例转化成可以导入的xml格式  https://github.com/zhangzheyuk/CaseConvert

  5. php如何实现读取网易有道词典输出单词的xml格式并且转化为html形式

    php实现读取网易有道词典输出单词的xml格式并且转化为html形式 一.总结 一句话总结:将xml中的文件用preg_match_all读出来,然后组合成想要的数据 1.explode除了爆炸的意思 ...

  6. (二十二)SpringBoot之使用mybatis generator自动生成bean、mapper、mapper xml

    一.下载mybatis generator插件 二.生成generatorConfig.xml new一个generatorConfig.xml 三.修改generatorConfig.xml 里面的 ...

  7. netbeans生成的maven工程没有web.xml文件 如何新建

    使用netbeans生成的maven工程没有web.xml 需要自己新建 步骤: 下一步,完成

  8. 【Silverlight】Bing Maps学习系列(八):使用Bing Maps Silverlight Control加载自己部署的Google Maps

    [Silverlight]Bing Maps学习系列(八):使用Bing Maps Silverlight Control加载自己部署的Google Maps 上个月微软必应地图(Bing Maps) ...

  9. 【Silverlight】Bing Maps学习系列(七):使用Bing Maps的图片系统(Tile System)

    [Silverlight]Bing Maps学习系列(七):使用Bing Maps的图片系统(Tile System) 目前包括微软必应地图在内的几乎所有在线电子地图(如:Google Maps等)都 ...

随机推荐

  1. 聊聊、Zookeeper Linux 单服务

    关于上一篇 Zookeeper 的文章是介绍安装启动,这一篇介绍独立服务,也就是单台 Zookeeper 提供服务.首先登陆 Linux 系统,确保网络通畅.如果遇到找不到网卡 eth0 情况,可以先 ...

  2. 11i REP-3000: 启动 Oracle Toolkit 时发生内部错误.

    +---------------------------------------------------------------------------+ 应用对象程序库: Version : 11. ...

  3. 【ActiveMQ】消息生产者自动注入报错:Could not autowire. No beans of 'JmsMessagingTemplate' type found

    使用ActiveMQ过程中,定义消息生产者: package com.sxd.jms.producer; import org.springframework.beans.factory.annota ...

  4. dedecms中的模版不解析dede:global

    先安装dedecms,配置好各项内容,栏目,网站内容等. 最近在使用dedecms做后台开发一个手机网站的项目,前端设计都是用html5来设计.很多地方都需要使用dede:global标签来调取全局变 ...

  5. 关于 Android 平台开发相关的有哪些推荐书籍?

    转自:http://www.zhihu.com/question/19579609 作者:Shan Huang 链接:http://www.zhihu.com/question/19579609/an ...

  6. 转:java的各个拓展类库的推荐方案

    from: 链接:https://www.zhihu.com/question/21142149/answer/109854408 Java是世界上最强大的编程语言之一,很多开发人员和大型企业都偏爱J ...

  7. java调试工具jdb

    Finds and fixes bugs in Java platform programs. Synopsis jdb [options] [classname] [arguments] optio ...

  8. apue学习笔记(第六章 系统数据文件和信息)

    UNIX系统的正常运作需要使用大量与系统有关的数据文件,例如,口令文件/etc/passwd和组文件/etc/group就是经常被多个程序频繁使用的两个文件. 口令文件 UNIX系统口令文件包含如下字 ...

  9. Cookie的写入,和读取

    public static void SetLoginGmameInfo(string  uid, string sid, string timestring, string sign)       ...

  10. Java提高篇

    http://www.cnblogs.com/chenssy/p/3850230.html http://www.cnblogs.com/chenssy/p/3521565.html http://w ...