Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从文本文件中读取特定列的行值,并使用SAX解析器和java将值分配给xml元素_Java_Xml_Sax - Fatal编程技术网

如何从文本文件中读取特定列的行值,并使用SAX解析器和java将值分配给xml元素

如何从文本文件中读取特定列的行值,并使用SAX解析器和java将值分配给xml元素,java,xml,sax,Java,Xml,Sax,我有如下文本文件。 每列由一个选项卡分隔 Material Sales Org Dist. Chanl Description 1 Description 2 Prdt. Hirachy. UoM Gross Weight CERTIFICATE 2.1 2092 11 CERTIFICATE 2.1 220242200020002000 EA 0.000 0.000 KG CERTIFICATE 2.2 2092

我有如下文本文件。 每列由一个选项卡分隔

Material Sales Org Dist. Chanl Description 1 Description 2 Prdt. Hirachy. UoM Gross Weight CERTIFICATE 2.1 2092 11 CERTIFICATE 2.1 220242200020002000 EA 0.000 0.000 KG CERTIFICATE 2.2 2092 11 CERTIFICATE 2.2 220242200020002000 EA 0.002 0.002 KG 0.070 PACKAGING_ECC 2092 11 PACKAGING_ECC 220242200020002000 EA 0.000 0.000 KG TRAVEL_TIME_ECC 2092 11 TRAVEL_TIME_ECC 220243200020002000 EA 0.000 0.000 KG 物料销售组织区渠道描述1描述2 Prdt。赫拉希。计量单位毛重 证书2.1 2092 11证书2.1 220242200020000 EA 0.000 0.000 KG 证书2.2 2092 11证书2.2 220242200020000 EA 0.002 0.002 KG 0.070 包装_ECC2092 11包装_ECC220242200020000每件0.000 0.000千克 行程时间ECC 2092 11行程时间ECC 22024320002000 EA 0.000 0.000 KG 我必须阅读这个文件并将这个文本文件转换成xml

我使用了JavaSAX解析器来生成XML

我的示例xml如下所示

<each_record>
        <category>test category</category>
        <action>add</action>
        <table_name><![CDATA[abc_2092]]></table_name>
        <PartNumber><![CDATA[CERTIFICATE 2.1]]></PartNumber>
       <DistrChannel><![CDATA[11]]></DistrChannel>

    </each_record>

测试类别
添加
但我坚持从上面的文本文件中读取特定列的特定行值,并分配给xml元素

例如:在上面的示例中,partNumber元素的值为CERTIFICATE 2.1,在“Material”列下,DistributionChannel元素的值为11,在第三列下

我需要为文本文件中的许多行生成元素集。那么,有人能给我建议实现这一目标的最佳方法吗

我有一个问题,SAX解析器比JAXB好吗?我的输入文本文件包含69列和大约6000行,因此我选择了SAX,因为它的性能更好。
创建一个将所有列值作为属性的POJO类,读取文件并将值分配给java对象,然后使用JAXB从java对象生成xml,这是一个好主意吗?请建议

您是否尝试过:我有文本文件,而不是csv文件,每一列都用制表符分隔。我需要生成与文件中的行数相等的xml元素。为什么您认为sax的性能更好?它很难使用。。。而且你的代码很可能是冗长的,难看的,而且很难维护。。。