Java 使用StAX以字符串形式获取完整的XML节点
在我的本地环境中,Java 使用StAX以字符串形式获取完整的XML节点,java,xml,stax,Java,Xml,Stax,在我的本地环境中,startElement.toString()以字符串形式返回整个xml节点,我可以将其导出到另一个xml文件。但在测试服务器中的行为不同 例如:我有一个包含以下内容的输入xml文件: <books> <book isbn="125141122">Book title</book> </books> 注:本地和服务器java版本相同(Java1.6) 您知道如何将完整的xml标记作为字符串吗?。记录节点的字符串表示可能
startElement.toString()代码>以字符串形式返回整个xml节点,我可以将其导出到另一个xml文件。但在测试服务器中的行为不同
例如:我有一个包含以下内容的输入xml文件:
<books>
<book isbn="125141122">Book title</book>
</books>
注:本地和服务器java版本相同(Java1.6)
您知道如何将完整的xml标记作为字符串吗?。记录节点的字符串
表示可能是另一种方式?您是否尝试过通过套接字进行远程调试并检查变量?我没有访问此服务器的权限。这对解决任何问题都不是好兆头。也许你可以尝试在你有权访问的机器上复制服务器的配置,这样你就可以进行调查。你有过这样的运气吗?奇怪。记录节点的字符串
表示可能是另一种方式?您是否尝试过通过套接字进行远程调试并检查变量?我没有访问此服务器的权限。这对解决任何问题都不是好兆头。也许可以尝试在您有权访问的机器上复制服务器的配置,以便进行调查。您有过这样的运气吗?
String filePath = "/tmp/test.xml";
XMLInputFactory factory = XMLInputFactory.newInstance();
eventReader = factory.createXMLEventReader(new FileReader(filePath));
StringBuilder fileHeader = new StringBuilder();
while(eventReader.hasNext()){
XMLEvent event = eventReader.nextEvent();
if(event.getEventType() == XMLStreamReader.START_ELEMENT){
StartElement startElement = event.asStartElement();
String elementName = startElement.getName().getLocalPart();
if("book".equals(elementName)) {
fileHeader.append(startElement.toString());
fileHeader.append("\n");
}
}
}