繁体   English   中英

java xpath XML解析

[英]java xpath XML parsing

我编写了一些代码来使用xpath从XML字符串中提取不同的部分。 我的问题是,例如xml字符串

<event>alarm, red, 2</event>

是否有任何简单的方法用xpath选择说第一个逗号后字符串中的第二个单词如此“红色”? 现在我正在使用

String event = xpath.evaluate("/event", doc);

返回"alarm, red, 2"但我想要的只是"red" 我知道我可以然后采取事件并使用子字符串来提取"red"但我想知道是否有办法使用xpath而不是substring?

码:

String xml = "<event>alarm, red, 2<event>";  

XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();

InputSource source = new InputSource(new StringReader(xml));
Document doc = (Document) xpath.evaluate ("/", source, XPathConstants.NODE);

如果使用XPath 2.0实现,则可以使用tokenize并使用正则表达式按逗号分隔字符串,然后选择第二个标记:

tokenize(/event, ',')[2]

我不认为这是可能的,这可能不是一个好主意,你的元素的内容应该是原子的,我会避免将这个解析与Xpath混合,并简单地用一个实用方法包装事件来装饰第一个单词。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM