有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

解析XML文件(Java)中特定标记的内容

我有一个如下所示的XML文件,我需要生成一个。txt文件,标签中包含纯文本,每行一个,使用Java

我读到,我可以使用SAX来访问不同的标签,但在这种情况下,在下面的示例中,如果标签中可能有随机标记,这是无效的

最好的方法是什么?也许是正则表达式

<?xml version="1.0" encoding="utf-8"?>
[...]
<source>
  <g id="_0">
    <g id="_1">First valid sentence</g>
  </g>
</source>
<source>Another valid string</source>

输出结果。txt应该是这样的:

First valid sentence
Another valid string

共 (1) 个答案

  1. # 1 楼答案

    您可以使用joox库来解析xml数据。使用它的find()方法,您可以获取所有<source>元素,然后使用getTextContent()提取其文本,如:

    import java.io.File;
    import java.io.IOException;
    import org.xml.sax.SAXException;
    import static org.joox.JOOX.$;
    
    public class Main {
    
        public static void main(String[] args) throws SAXException, IOException {
            $(new File(args[0]))
                .find("source")
                .forEach(elem -> System.out.println(elem.getTextContent().trim()));
    
        }
    }
    

    我将假设一个格式良好的xml文件,如:

    <?xml version="1.0" encoding="utf-8"?>
    <root>
        <source>
            <g id="_0">
                <g id="_1">First valid sentence</g>
            </g>
        </source>
        <source>Another valid string</source>
    </root>
    

    它产生:

    First valid sentence
    Another valid string