【发布时间】:2018-01-10 04:07:50
【问题描述】:
我正在寻找一种方法来解析 XML 文档,并将结果存储在 Excel 电子表格中。
生成的 .xls 工作表将包含以下行:
- 每个元素和属性的 xpath
- 以及有关元素的信息,例如:
- 节点的数据类型
- 基数和验证(如果有)
- 在 xsd 中指定的文档。
这将帮助我创建一个可在集成映射练习中使用的模板。我正在寻找要使用的库的指针,或者是否有可用的实用程序来执行此操作。
【问题讨论】:
我正在寻找一种方法来解析 XML 文档,并将结果存储在 Excel 电子表格中。
生成的 .xls 工作表将包含以下行:
这将帮助我创建一个可在集成映射练习中使用的模板。我正在寻找要使用的库的指针,或者是否有可用的实用程序来执行此操作。
【问题讨论】:
您没有指定特定的编程语言,所以,我将提供我所知道的在 C# 中对我有用的东西...
尝试使用NPOI library 以编程方式创建 Excel 文件(这将不要求您的 PC 安装 MS Office)
XSSFWorkbook wb1 = null;
using (var file = new FileStream("D:\\banding.xlsx", FileMode.Open, FileAccess.ReadWrite)) {
wb1 = new XSSFWorkbook(file);
}
wb1.GetSheetAt(0).GetRow(0).GetCell(0).SetCellValue("Sample");
using (var file2 = new FileStream("D:\\banding2.xlsx", FileMode.Create, FileAccess.ReadWrite)) {
wb1.Write(file2);
file2.Close();
}
还有大量关于如何将 Microsoft 的 System.Xml 命名空间用于parsing XML的文档
更新 对于 Java:
与我上面的回答类似,Apache POI library 可用于创建实际的 Excel 文件。
然后,谷歌搜索 xml parsing in Java 并选择您的选项......例如
导入 XML 相关的包
import java.io.*;
import java.util.*;
import org.jdom2.*;
创建一个 DocumentBuilder
SAXBuilder saxBuilder = new SAXBuilder();
从文件或流创建文档
File inputFile = new File("input.txt");
SAXBuilder saxBuilder = new SAXBuilder();
Document document = saxBuilder.build(inputFile);
提取根元素
Element classElement = document.getRootElement();
检查属性
//returns specific attribute
getAttribute("attributeName");
检查子元素
//returns a list of subelements of specified name
getChildren("subelementName");
//returns a list of all child nodes
getChildren();
//returns first child node
getChild("subelementName");
超出上述范围会将其转变为 S.O 明确禁止的代码编写服务
【讨论】: