我以字符串和Document
格式从Web服务获得SOAP响应,并且我有一个验证它的方法。问题是我必须验证节点<Result>
。
我已经有了这个节点,但不知道如何使用标签等获取子节点。
Node result = (Node)xPath.compile("//Result").evaluate(xmlDocument, XPathConstants.NODE);
<Result>
<playerID>some id</playerID>
<partnerUID>some partner uid</partnerUID>
<registrationLevel>some registration level</registrationLevel>
<properties>
<property>
<key>some key</key>
<value>some value</value>
</property>
<property>...</property>
</Result>
感谢您的帮助
答案 0 :(得分:1)
我使用这种方式对XSD验证XML文件。我认为这会对你有帮助。
public String validateXMLSchema() throws SAXException, IOException
{
File folder = new File("xsdPath");
File[] listOfFiles = folder.listFiles();
String tempXsdFile;
for( int i=0; i < listOfFiles.length; i++ )
{
if(listOfFiles[i].isFile())
{
tempXsdFile = listOfFiles[i].getName();
try
{
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(new File(xsdPath + tempXsdFile));
Validator validator = schema.newValidator();
validator.validate(new StreamSource(new File("C://Users//test.xml")));
return tempXsdFile;
}
catch (IOException | SAXException e)
{
System.out.println("ERROR: XML not well known"+ e.getMessage());
}
}
}
return null;
}