【问题标题】:Excel from XML along with XSD来自 XML 和 XSD 的 Excel
【发布时间】:2018-01-10 04:07:50
【问题描述】:

我正在寻找一种方法来解析 XML 文档,并将结果存储在 Excel 电子表格中。

生成的 .xls 工作表将包含以下行:

  • 每个元素和属性的 xpath
  • 以及有关元素的信息,例如:
    • 节点的数据类型
    • 基数和验证(如果有)
    • 在 xsd 中指定的文档。

这将帮助我创建一个可在集成映射练习中使用的模板。我正在寻找要使用的库的指针,或者是否有可用的实用程序来执行此操作。

【问题讨论】:

    标签: xml parsing xsd


    【解决方案1】:

    您没有指定特定的编程语言,所以,我将提供我所知道的在 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 明确禁止的代码编写服务

    【讨论】:

    • Java 是我将要使用的(但这在这里不是很重要)。在这里,这个问题与创建 Excel 文档无关,即使我得到 CSV 我也可以。我的目标是遍历 xml 中的每个元素和属性并使用 Xsd,然后打印 XPath for the elementCardinalityDataType with size文档。我已经开始使用 soa-model-core 来解析 xsd。但我在想是否有一些更简单的解决方案。
    • 我不认为我期望得到代码。我可以很好地编写代码。这里的重点不仅仅是获取 XML 中列出的元素和属性及其路径。重点是然后导航 XSD 以查找有关这些元素和属性的详细信息。我找到了使用 soa-model-core 的方法。但这需要一点时间。我在想是否有人早前做过类似的工作并且可以使用工具。
    • 好吧,听起来您已经掌握了如何打造更出色、更具体的 S.O. 的核心。问题。如果你有一个代码示例和某种关于是什么让它变得困难的解释(如果代码示例还不是很明显),我可能会开始一个新的问题,重点是......
    猜你喜欢
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 2012-10-07
    相关资源
    最近更新 更多