gpt4 book ai didi

java - StAX 错误地读取事件读取器

转载 作者:行者123 更新时间:2023-12-01 15:29:26 26 4
gpt4 key购买 nike

我有一个 xml

<?xml version="1.0" encoding="UTF-8"?>
<Batch checksum="4f4e96dc724aa38965a75121b654a49830fc6a46f927f1b1803cdd22a40f1e27">
<UpdateCache incremental="false" cleanCache="true">
<PayLoad>
<ConfigurationChangeSet />
<CacheContent Type="ReportingServices" Name="ReportingServices-conf.xml" Path="roles/ReportingServices" EntryName="ReportingServices" EntryId="175">
&lt;RPTSVC role:instanceID="765002" role:roleName="ReportingServices" role:Identity="175"&gt;
&lt;SSRSServerDetails&gt;
&lt;SSRS_PORT&gt;29283&lt;/SSRS_PORT&gt;
&lt;SSRS_SSL_PORT&gt;29284&lt;/SSRS_SSL_PORT&gt;
</CacheContent>
</PayLoad>
</UpdateCache>

我正在开发一个项目,该项目使用 stax 将标签的内容剥离到一个单独的文件中。问题是 stax 解析器只能在遇到 < 时去掉 '<',然后将其报告为已完成。

这是我正在使用的代码:

while(reader.hasNext()){
XMLEvent event = reader.nextEvent();
if(event.isStartElement()){
StartElement startElement = event.asStartElement();

if(startElement.getName().getLocalPart().equals("CacheContent")){
XMLEvent cacheContentXmlEvent = reader.peek();
if(cacheContentXmlEvent.isCharacters()){
Characters cacheContentXmlText = cacheContentXmlEvent.asCharacters();

System.out.println(String.format("Cache Content ==> %s " , cacheContentXmlText.getData())) ;
}
}
}
}

我做错了什么?感谢您的帮助。

<小时/>

这是新代码(可能还没有消除错误)

while(reader.hasNext()){
XMLEvent event = reader.nextEvent();
if(event.isStartElement()){
StartElement startElement = event.asStartElement();
if(startElement.getName().getLocalPart().equals("CacheContent")){

XMLEvent cacheContentXmlEvent = reader.peek();
if(cacheContentXmlEvent.isCharacters()){
StringBuilder stringBuilder = new StringBuilder();
while(reader.hasNext()){
XMLEvent xmlCharEvent = reader.nextEvent();
if(xmlCharEvent.isCharacters()){
stringBuilder.append(xmlCharEvent.asCharacters().getData());
}
if(reader.peek().isCharacters()){
continue;
}else{
break;
}
}
System.out.println(stringBuilder.toString());
}
}
}
}

最佳答案

给定父节点下可以有多个文本节点。您可能会发现,如果您循环并继续检查 isCharacters(),您最终将获得所有文本。

关于java - StAX 错误地读取事件读取器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9743124/

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