首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解析具有多个标签的文本文件并将其写入另一个文本文件

解析具有多个标签的文本文件并将其写入另一个文本文件
EN

Stack Overflow用户
提问于 2014-03-28 01:05:25
回答 1查看 964关注 0票数 0

需要读取一个由多个XML文件组成的类似于XML.The文本文件的文本文件,用一个父标签.Need来解析文件并逐行解析,需要将所需的子标签的相应元素写到另一个文本文件.Need中,甚至在父标签内重复多次,在一行中将元素写到父标签之后的下一行。我知道如何读写文件,但是我无法按照要求得到读取的逻辑.Please帮我解决。

代码语言:javascript
运行
复制
    <parentnode xmlns="http://www.fpml.org/FpML-5/recordkeeping" fpmlVersion="5-5" xmlns:abcde="http://www.abcde.com/ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.abcde.com/ext /../xmls/XYZ/recordkeeping/abcde-ext.xsd">
<Child1 Child1Scheme="http://www.google.com">1234566546</Child1>
<Child1 Child1Scheme="http://www.fpml.org/coding-scheme/external/UNique">AbcdeXYZ-23243423</Child1>
<country countryScheme="http://www.fpml.org/coding-scheme/external/country-identifier">1030253498</country>
<state stateScheme="http://www.fpml.org/coding-scheme/external/state-identifier">23423423423</state>
</parentnode>

<parentnode xmlns="http://www.fpml.org/FpML-5/recordkeeping" fpmlVersion="5-5" xmlns:abcde="http://www.abcde.com/ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.abcde.com/ext /../xmls/XYZ/recordkeeping/abcde-ext.xsd">
<Child1 Child1Scheme="http://www.google.com">1234566546</Child1>
<Child1 Child1Scheme="http://www.fpml.org/coding-scheme/external/UNique">AbcdeXYZ-154555</Child1>
<country countryScheme="http://www.fpml.org/coding-scheme/external/country-identifier">1030253498</country>
<state stateScheme="http://www.fpml.org/coding-scheme/external/state-identifier">434343242</state>
</parentnode>

<parentnode xmlns="http://www.fpml.org/FpML-5/recordkeeping" fpmlVersion="5-5" xmlns:abcde="http://www.abcde.com/ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.abcde.com/ext /../xmls/XYZ/recordkeeping/abcde-ext.xsd">
<Child1 Child1Scheme="http://www.google.com">1234566546</Child1>
<Child1 Child1Scheme="http://www.fpml.org/coding-scheme/external/UNique">AbcdeXYZ-4566545</Child1>
<country countryScheme="http://www.fpml.org/coding-scheme/external/country-identifier">1030253498</country>
<state stateScheme="http://www.fpml.org/coding-scheme/external/state-identifier">2323232323</state>
</parentnode>
EN

回答 1

Stack Overflow用户

发布于 2014-03-28 03:26:58

首先,您必须为您的文件创建一个有效的xml:

代码语言:javascript
运行
复制
<?xml version="1.0"?>
<rootnode>
    <parentnode xmlns="http://www.fpml.org/FpML-5/recordkeeping"
        fpmlVersion="5-5" xmlns:abcde="http://www.abcde.com/ext"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.abcde.com/ext /../xmls/XYZ/recordkeeping/abcde-ext.xsd">
        <Child1 Child1Scheme="http://www.google.com">1234566546</Child1>
        <Child1 Child1Scheme="http://www.fpml.org/coding-scheme/external/UNique">AbcdeXYZ-23243423</Child1>
        <country
            countryScheme="http://www.fpml.org/coding-scheme/external/country-identifier">1030253498</country>
        <state stateScheme="http://www.fpml.org/coding-scheme/external/state-identifier">23423423423</state>
    </parentnode>

    <parentnode xmlns="http://www.fpml.org/FpML-5/recordkeeping"
        fpmlVersion="5-5" xmlns:abcde="http://www.abcde.com/ext"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.abcde.com/ext /../xmls/XYZ/recordkeeping/abcde-ext.xsd">
        <Child1 Child1Scheme="http://www.google.com">1234566546</Child1>
        <Child1 Child1Scheme="http://www.fpml.org/coding-scheme/external/UNique">AbcdeXYZ-154555</Child1>
        <country
            countryScheme="http://www.fpml.org/coding-scheme/external/country-identifier">1030253498</country>
        <state stateScheme="http://www.fpml.org/coding-scheme/external/state-identifier">434343242</state>
    </parentnode>

    <parentnode xmlns="http://www.fpml.org/FpML-5/recordkeeping"
        fpmlVersion="5-5" xmlns:abcde="http://www.abcde.com/ext"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.abcde.com/ext /../xmls/XYZ/recordkeeping/abcde-ext.xsd">
        <Child1 Child1Scheme="http://www.google.com">1234566546</Child1>
        <Child1 Child1Scheme="http://www.fpml.org/coding-scheme/external/UNique">AbcdeXYZ-4566545</Child1>
        <country
            countryScheme="http://www.fpml.org/coding-scheme/external/country-identifier">1030253498</country>
        <state stateScheme="http://www.fpml.org/coding-scheme/external/state-identifier">2323232323</state>
    </parentnode>
</rootnode>

然后你就可以开始阅读你的文件了,你只需要检查它。

代码语言:javascript
运行
复制
import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class ReadXMLFile {

    public static void main(String argv[]) {

        try {
            File fXmlFile = new File("file.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(fXmlFile);

            doc.getDocumentElement().normalize();

            System.out.println("Root element :" + doc.getDocumentElement().getNodeName());

            NodeList nList = doc.getElementsByTagName("parentnode");

            for (int temp = 0; temp < nList.getLength(); temp++) {

                Node nNode = nList.item(temp);

                System.out.println("Current Element :" + nNode.getNodeName());

                if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                    Element eElement = (Element) nNode;
                    System.out.println("Staff id : " + eElement.getElementsByTagName("Child1").item(0).getTextContent());
                    System.out.println("First Name : " + eElement.getElementsByTagName("Child1").item(0).getTextContent());
                    System.out.println("Last Name : " + eElement.getElementsByTagName("country").item(0).getTextContent());
                    System.out.println("Nick Name : " + eElement.getElementsByTagName("state").item(0).getTextContent());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22694436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档