生成XML文件,通过实体生成XML文件
实体
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;//引入空间
namespace Gome.OpenJob.Model
{
/// <summary>
/// 全量索引文件
/// 作者:赵亮
/// 创建时间:2014、04、08
/// </summary>
[XmlRoot("root")]
public class XMLBaiDuFullEntitys
{
/// <summary>
/// feed数据格式的版本号
/// </summary>
[XmlElement("version")]
public string version { get; set; }//没有库里
/// <summary>
/// feed数据文件最近修改时间
/// </summary>
[XmlElement("modified")]
public string modifiedDate { get; set; }
/// <summary>
/// 结合商家创建的百度推广平台账号
/// </summary>
[XmlElement("seller_id")]
public string seller_Name { get; set; }
/// <summary>
/// 商家全量推送过来的所有商品数量
/// </summary>
[XmlElement("total")]
public string totalnumber { get; set; }
/// <summary>
/// 商家数据包所在的目录地址
/// </summary>
[XmlElement("dir")]
public string dirItem { get; set; }
/// <summary>
/// 全量更新只允许 upload 上架商品,此处一个 outer_id 将对应 1000 个商品
/// </summary>
[XmlElement("item_ids")]
public ItemIds ItemIds { get; set; }
}
/// <summary>
/// 全量更新只允许 upload 上架商品,此处一个 outer_id 将对应 1000 个商品
/// </summary>
public class ItemIds
{
[XmlElement("outer_id")]
public List<OutId> outIds { get; set; }
}
public class OutId
{
[XmlAttribute("action")]
public string Action { get; set; }
[XmlText]
public string OutText { get; set; }
}
}
************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Gome.OpenJob.Model;
using System.IO;
using System.Xml.Serialization;
using System.Xml;
using System.Configuration;
namespace Gome.OpenJob.Common
{
/// <summary>
/// 生成全量
/// </summary>
public sealed class GenerateXML
{
private static XMLBaiDuFullEntitys m_humanResource = null;
/// <summary>
/// 用于生成详细内容
/// </summary>
private static XMLBaiDuGoodsDetailTest m_GoodsDetailTestResource = null;
private GenerateXML() { }
public static XMLBaiDuFullEntitys Get(string path)
{
if (m_humanResource == null)
{
FileStream fs = null;
try
{
XmlSerializer xs = new XmlSerializer(typeof(XMLBaiDuFullEntitys));
fs = new FileStream(path, FileMode.Open, FileAccess.Read);
m_humanResource = (XMLBaiDuFullEntitys)xs.Deserialize(fs);
fs.Close();
return m_humanResource;
}
catch
{
if (fs != null)
fs.Close();
throw new Exception("Xml deserialization failed!");
}
}
else
{
return m_humanResource;
}
}
//生成全量索引
public static void Set(string path, XMLBaiDuFullEntitys humanResource)
{
if (humanResource == null)
throw new Exception("Parameter humanResource is null!");
FileStream fs = null;
try
{
XmlSerializer xs = new XmlSerializer(typeof(XMLBaiDuFullEntitys));
string path_file = SystemConfig.GetValue("pathFiles");//Open.config
//生成文件的路径
string strPath = path_file + "\\" + path;
fs = new FileStream(strPath, FileMode.Create, FileAccess.Write);
xs.Serialize(fs, humanResource);
m_humanResource = null;
fs.Close();
}
catch
{
if (fs != null)
fs.Close();
throw new Exception("Xml serialization failed!");
}
}
}
}
***************************
/// <summary>
/// 生成全量索引文件
/// 作者:赵亮
/// 创建时间:2014、04、08
/// </summary>
/// <returns></returns>
public static int Notation = 0;
public XMLBaiDuFullEntitys FullAmount()
{
XMLBaiDuFullEntitys fu = new XMLBaiDuFullEntitys();
ItemIds ids = new ItemIds();
ids.outIds = new List<OutId>();
fu.ItemIds = ids;
string sqlnum = "select distinct count(*) from VIEW_CPS v inner join gome_category r on (v.category_id=r.categoryid) where seq=0 and v.state='已上架' and v.list_price is not null and v.list_price !=0";
DbCommand command = this.GetSqlStringCommand(sqlnum);
object num = this.ExecuteScalar(command);
int countnum = int.Parse(num.ToString()) + 1000 - 1;
string count = Math.Ceiling((double)countnum / (double)1000).ToString();
Notation = int.Parse(count);
//实体里传值
fu.version = "1.0";
fu.modifiedDate = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
fu.seller_Name = "国美在线";
fu.totalnumber = num.ToString();//商品数量
fu.dirItem = "www.gome.com.cn";
//int outer_idNum = aa / 1000;
for (int i = 1; i <= int.Parse(count) - 2; i++)
{
OutId outId = new OutId();
outId.Action = "upload";
outId.OutText = i.ToString();
fu.ItemIds.outIds.Add(outId);
}
return fu;
}
***************************
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
BaiDuMicroPurchaseBLL abc = new BaiDuMicroPurchaseBLL();
abc.baiduFullAmount();
XMLBaiDuFullEntitys xmlList = abc.baiduFullAmount();
//全量索引文件名
string path = SystemConfig.GetValue("FullIndexName");//Open.config
//调用生成xml文件
GenerateXML.Set(path, xmlList);
abc.baiduCommodityInformationFile();
Console.Read();
}
}
}
生成XML文件,通过实体生成XML文件的更多相关文章
- Android开发——自动生成Android屏幕适配的dimens.xml文件
使用dimens.xml解决屏幕适配问题是Android官方解决方案,本文主要讲述了如何自动生成Android屏幕适配的dimens.xml,减少了工作量,在维护dimens.xml文件时更加省时省力 ...
- 如何在IJ中使用Jaxb2通过xml定义生成对应的Java Entity类的文件
#0. 准备要转换的xml文件,在Project视界中,右击这个xml文件,在弹出的菜单上选择“Generate XSD schema from XML File...”, 按默认设置生成xsd文件. ...
- netbeans生成的maven工程没有web.xml文件 如何新建
使用netbeans生成的maven工程没有web.xml 需要自己新建 步骤: 下一步,完成
- Java IDE 编辑器 --- IntelliJ IDEA 进阶篇 生成 hibernate 实体与映射文件
原文:转:Java IDE 编辑器 --- IntelliJ IDEA 进阶篇 生成 hibernate 实体与映射文件 2011-04-30 12:50 很多人不知道怎么用 IntelliJ IDE ...
- 生成 hibernate 映射文件和实体类
创建web工程,使用Hibernate的时候,在工程里一个一个创建实体类太麻烦,浪费时间,现在教大家如何用MyEclipse自动生成Hibernate映射文件及实体类 方法/步骤 创建数据库,创建 ...
- Mybatis Generator生成Mybatis Dao接口层*Mapper.xml以及对应实体类
[前言] 使用Mybatis-Generator自动生成Dao.Model.Mapping相关文件,Mybatis-Generator的作用就是充当了一个代码生成器的角色,使用代码生成器不仅可以简化我 ...
- XML文件与实体类的互相转换
XML文件与实体类的互相转换 一.将XML文件反序列化为实体类对象 1. 通常程序的配置信息都保存在程序或者网站的专门的配置文件中(App.config/web.config).但是现在为了演示XML ...
- T4 模板自动生成带注释的实体类文件
T4 模板自动生成带注释的实体类文件 - 只需要一个 SqlSugar.dll 生成实体就是这么简单,只要建一个T4文件和 文件夹里面放一个DLL. 使用T4模板教程 步骤1 创建T4模板 如果你没有 ...
- Intellij IDEA 通过数据库表逆向生成带注释的实体类文件超级详细步骤,附详细解决方案
参考:https://blog.csdn.net/qq_34371461/article/details/80571281 https://blog.csdn.net/mqchenrong/arti ...
随机推荐
- C# WinForm 中ComboBox数据绑定的问题 (转)
来自:http://blog.sina.com.cn/s/blog_5fb9e26301013wga.html C# WinForm 中ComboBox数据绑定的问题 怎样让WinForm中的Comb ...
- SQL Server blocking session
select * from sys.sysprocesses where blocked>0; 96被95block住了. dbcc INPUTBUFFER(95) dbcc INPUTBUFF ...
- Objective-C ,ios,iphone开发基础:多个视图(view)之间的切换,以及视图之间传值。
所有的视图都继承自 UIViewController,都使用 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nib ...
- Linux安装Oracle 11G过程(测试未写完)
一.简介 Oracle数据库在系统运维中的重要性不言而喻,通过熟悉Oracle的安装来加深对操作系统和数据库知识的了解.Linux安装Oracle前期修改linux内核参数很重要,其实就是linux下 ...
- 显示创建一个表的SQL语句
显示创建数据库中包的语句,从而可以方便的对表的结构进行修改和复制(当然还有其他的方式) 显示表结构: 显示创建表语句: show create table tablename;
- [改善Java代码]自由选择字符串拼接方法
对一个字符串拼接有三种方法:加号,contact方法,StringBuffer或者StringBuilder的append方法,其中加号是最常用的.其他两种方式偶尔会出现在一些开源项目中,那么这三者有 ...
- 一些xcode5.1创建的工程在xcode6.0下不能编译的问题
这是因为Xcode5.1.1自动选上了arm64架构, 建议解决办法是: Build Settings-ValidArchitectures中却掉arm64
- asp自动解析网页中的图片地址,并将其保存到本地服务器
程序实现功能:自动将远程页面的文件中的图片下载到本地. 程序代码 <% '将本文保存为 save2local.asp '测试:save2local.asp?url=http://ent.sina ...
- c++ 11 国标标准方面的异常处理与微软在Visual Studio 2012的异常处理的区别
这段代码: __try { } __except(GetErrorCode()) { } 可以捕获空指针,但是包围在其中的代码不能有自带析构函数的对象.c++ 11 标准里面的auto_ptr关键字, ...
- ios开发:代理设计模式
代理是一种简单而功能强大的设计模式,这种模式用于一个对象“代表”另外一个对象去做和实现一些东西. 主对象维护一个代理(delegate)的引用并且在合适的时候向这个代理发送消息,这个消息通知“代理”对 ...