关于自己臆想的一个简单的玩具代码

本文介绍了一种使用Java从两个不同的XML文件中提取信息的方法,并将这些信息用于创建新的文本文件。具体步骤包括:通过SAX解析器读取XML文件内容、提取所需元素并将其写入到一个由另一个XML文件指定名称的新TXT文件中。

臆想内容

①,有一个Tes.xml文件,里面的内容是这样的

<?xml version="1.0" encoding="UTF-8"?>
<person>
    <emp>
        <name>"张三"</name>
        <age>"18"</age>
        <sex>"男"</sex>
    </emp>
</person>

②,还有一个TextClient.xml文件,里面的内容是这样的

<?xml version="1.0" encoding="UTF-8"?>
<person>
    <name>name.txt</name>   
</person>

③我现在想将新建一个TXT文件,以2中t提取出来的name.tx作为文件名,以1中提取出来的内容作为内容写进新建的文件夹


现在是具体的代码实现

1,会出现的一个属性,就是准备的新建的那个文件名

2,在构造方法中,我先进行文件配置,在进行初始化操作,这样做的好处是不会吧内容写死,如果改直接在配置文件中改动,无需改动代码

3,在这个代码中,主方法中就写了个start。这样的话,代码看起来比较清晰。不是全部往主方法中死里写

4,我是按这个顺序写的。先构造框架写好,然后start框架写好,然后main写好。在然后就是配置文件,初始化,获取文件内容


public class TextClient {
    private File name;    
    public TextClient() throws Exception{
        Map<String,String> getInfo=clientInfo();//配置文件        
        init(getInfo);//初始化属性
    }
    private void init(Map<String,String> getInfo){//创建一个初始化属性的方法
        name=new File(getInfo.get("name"));    
    }    
    
    public List<String> tesInfo() throws Exception{//获取Tes.xml中的内容,,如何用Sax解析已经在前一篇介绍过了
        SAXReader re=new SAXReader();
        Document doc=re.read("Tes.xml");
        Element root=doc.getRootElement();
        List<Element> list=root.elements();   //
        List<String> p=new ArrayList<String>();
        for(Element e:list){
            String name=e.elementText("name");
            String age=e.elementText("age");
            String sex=e.elementText("sex");
            p.add(name);
            p.add(age);
            p.add(sex);
        }    
        return p;
    }
    private Map<String,String> clientInfo()throws Exception{//获取Textclient.xml中的信息
        Map<String,String> info=new HashMap<String,String>();
        SAXReader sr=new SAXReader();
        Document doc=sr.read("TextClient.xml");
        Element root=doc.getRootElement();
        List<Element> list=root.elements();
        for(Element e:list){
            String    key=e.getName();
            String value=e.getText();
            info.put(key, value);
        }
        return info;
    }
    public static void creatFile(List<String> list,File file){//创建文件,并且写入内容
        PrintWriter pw=null;
        try {
            pw = new PrintWriter(file);
            pw.println(list);
        } catch (FileNotFoundException e) {            
            e.printStackTrace();
        }    finally{
            pw.close();
        }
    }    
    public void start() throws Exception{//启动程序
        creatFile(tesInfo(),name);
    }    
    public static void main(String[] args) {//主方法    
        try {
            TextClient tc = new TextClient();
            tc.start();
        } catch (Exception e) {            
            e.printStackTrace();
        }    
    }
}




以下是几种针对 Excel 文件不同操作的具体脚本: #### 1. 使用 Python 的 `pandas` 库读取 Excel 文件 ```python import pandas as pd path = 'C:/Users/Administrator/Desktop/name.xlsx' exc_data = pd.read_excel(path, header=None) ``` 该脚本使用 `pandas` 库的 `read_excel` 函数读取指定路径下的 Excel 文件,`header=None` 表示不将第一行作为列名[^2]。 #### 2. 使用 Python 的 `openpyxl` 库读取 Excel 文件 ```python import openpyxl def readExcel(filepath): # 获取工作簿 wk = openpyxl.load_workbook(filepath) # 获取工作表 sheet1 = wk["Sheet"] # 获取单元格坐标及值 location = sheet1.cell(1, 1) value = sheet1.cell(1, 1).value print(location, value) # 获取工作表行数及列数 rows = sheet1.max_row cols = sheet1.max_column print(f"行数:{rows},列数:{cols}") if __name__ == '__main__': readExcel("臆想症.xlsx") ``` 此脚本使用 `openpyxl` 库,通过 `load_workbook` 函数加载 Excel 文件,然后获取指定工作表、单元格的值以及工作表的行数和列数[^3]。 #### 3. 使用 Python 的 `xlrd` 库读取 Excel 文件 ```python import xlrd import os import sys reload(sys) sys.setdefaultencoding("utf8") filename = 'text.xlsx' filename = filename.decode('utf-8') book = xlrd.open_workbook(filename) sheet1 = book.sheets()[0] nrows = sheet1.nrows print(u'表格总行数 ', nrows) ncols = sheet1.ncols print(u'表格总列数 ', ncols) # 查询表头 excelhead = [] for i in range(ncols): excel_head_values = sheet1.col_values(i) excelhead.append(excel_head_values[0]) # 查询行的值 excelhang = [] for i in range(nrows)[1:]: row_values = sheet1.row_values(i) print('User:' + row_values[2] + ' Filename:' + row_values[0] + ' Tablename:' + row_values[1]) ``` 该脚本使用 `xlrd` 库读取 Excel 文件,获取表格的行数和列数,同时可以查询表头和行的值[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值