gpt4 book ai didi

java - 从文本文件读取 xml 时缺少 "<"

转载 作者:行者123 更新时间:2023-12-01 16:35:27 25 4
gpt4 key购买 nike

我编写了一段代码来读取一个文本文件中的多个 xml。

我的文本文件如下所示:

 <?xml version="1.0" encoding="UTF-8">
<ns2: abc>
<type>fruit</type>
</abc>
<?xml version="1.0" encoding="UTF-8">
<ns2: abc>
<type>cap</type>
</abc>
<?xml version="1.0" encoding="UTF-8">
<ns2: abc>
<type>veggie</type>
</abc>

我的java代码读取它们并将它们显示为三个不同的xml文件:

  public static void main(String[] args) throws IOException{
File xmlFile=new File(location of .txt);
Reader fileReader = new FileReader(xmlFile);
BufferedReader bufReader = new BufferedReader(fileReader);
StringBuilder sb = new StringBuilder();
String line = bufReader.redLine();
while( lin != null){
sb.append(line).append("\n")
line = bufReader.readLin();

}

String xml2 = sb.toString();
final Pattern pattern =Pattern.compile("<?xml(.+?)</abc>", Pattern.DOTALL);
final Matchr matcher = pattern.matcher(xml2);

while(matcher.find()){
Srting content = matcher.group(0);
System.out.println(content);
System.out.println("***************************");
}

问题是 - 它正在打印如下消息:

  ?xml version="1.0" encoding="UTF-8">
<ns2: abc>
<type>fruit</type>
</abc>

我前面没有“<”。

还有一个问题 - 有没有比模式匹配更好的方法?对于我的要求,xml 的内容没有任何区别。我只想得到这个输出

    <?xml version="1.0" encoding="UTF-8">
<ns2: abc>
<type>fruit</type>
</abc>
*************************
<?xml version="1.0" encoding="UTF-8">
<ns2: abc>
<type>cap</type>
</abc>
*************************
<?xml version="1.0" encoding="UTF-8">
<ns2: abc>
<type>cap</type>
</abc>
************************

最佳答案

改变

final Pattern pattern =Pattern.compile("<?xml(.+?)</abc>", Pattern.DOTALL);

final Pattern pattern =Pattern.compile("<\?xml(.+?)</abc>", Pattern.DOTALL);
^

这样?是字面意思,而不是指定 < 的可选性.

关于java - 从文本文件读取 xml 时缺少 "<",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61959228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com