我有一个XML文件,几个MB
我现在需要用xpath,取出部分XML内容,然后返回,注意:返回的不光是XML里面的值,而且还要保持XML格式。
比如:
<book>
......
</book><book>
......
</book><book>
......
</book><book>
......
</book>.......我有N多book,比如我想返回ID是123的书,我可以用xpath: //book[@ID='123']
所以返回结果是:
<book id=123>
<Name>JAVA</Name>
<Publication year>2008</Publication year>
........
</book>
各位朋友, 我现在只能返回:
JAVA
2008
......
就是说我只能返回里面的值,可是我需要连tag名称也返回?各位大侠,帮帮小弟。--------------------------------现在用代码:
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse("src/mondial.xml"); XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr = xpath.compile("//country[@car_code='"+ code +"']");
String result = expr.evaluate(doc, XPathConstants.STRING);最后的result就是返回值了
我现在需要用xpath,取出部分XML内容,然后返回,注意:返回的不光是XML里面的值,而且还要保持XML格式。
比如:
<book>
......
</book><book>
......
</book><book>
......
</book><book>
......
</book>.......我有N多book,比如我想返回ID是123的书,我可以用xpath: //book[@ID='123']
所以返回结果是:
<book id=123>
<Name>JAVA</Name>
<Publication year>2008</Publication year>
........
</book>
各位朋友, 我现在只能返回:
JAVA
2008
......
就是说我只能返回里面的值,可是我需要连tag名称也返回?各位大侠,帮帮小弟。--------------------------------现在用代码:
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse("src/mondial.xml"); XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr = xpath.compile("//country[@car_code='"+ code +"']");
String result = expr.evaluate(doc, XPathConstants.STRING);最后的result就是返回值了
前提是需要该XML的SCHEMA,将其转换JavaBean,,用JAVA的反射机制,得到'Publication year', 'Name', 'book id'
result定义的是String 改成node类型试一试