相关疑难解决方法(0)

从xml节点获取行号 - java

我已经解析了一个XML文件,并得到了一个我感兴趣的节点.我现在如何在源XML文件中找到此节点出现的行号?

编辑:目前我正在使用SAXParser来解析我的XML.但是我会对使用任何解析器的解决方案感到满意.

与Node一起,我也有节点的XPath表达式.

我需要获取行号,因为我在文本框中显示XML文件,并需要突出显示节点出现的行.假设XML文件的格式很好,并且有足够的换行符.

java xml

31
推荐指数
2
解决办法
2万
查看次数

如何从JAXB Validator获取错误详细信息?

我有一些带有JAXB注释的类,我创建了一些实例,我需要根据我的XSD文件验证它们.当对象无效时,我应该能够获得有关错误的详细信息.

到目前为止,我还没有运气,我知道这个类ValidationEventHandler,但显然我可以将它与Unmarshaller类一起使用,问题是我必须验证对象而不是原始XML.

我有这个代码:

MyClass myObject = new MyClass();
JAXBContext jaxbContext = JAXBContext.newInstance("x.y.z");
JAXBSource jaxbSource = new JAXBSource(jaxbContext, myObject);
SchemaFactory factory = SchemaFactory
                .newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Source schemaFile = new StreamSource(getClass().getClassLoader()
                .getResourceAsStream("mySchema.xsd"));
Schema schema = factory.newSchema(schemaFile);

Validator validator = schema.newValidator();

validator.validate(jaxbSource);
Run Code Online (Sandbox Code Playgroud)

这段代码可以工作,它将验证对象并在消息中引发异常,如下所示:

cvc-pattern-valid:对于类型为'id'的模式'\ d {10}',值'12345678901'不是facet-valid.

问题是我需要特定的细节,使用类似于我必须解析所有消息的字符串.

java xml schema xsd jaxb

6
推荐指数
1
解决办法
4905
查看次数

标签 统计

java ×2

xml ×2

jaxb ×1

schema ×1

xsd ×1