<FieldArray 报表名="措施项目清单计价表(二)" Format="数据表">
<FIELD Index="0" Name="序号" Title="序号" Type="小数" GroupID="-1" />
<FIELD Index="1" Name="项目名称" Title="项目名称" Type="小数" GroupID="-1" />
<FIELD Index="2" Name="项目特征" Title="项目特征" Type="小数" GroupID="-1" />
<FIELD Index="3" Name="计量单位" Title="计量单位" Type="小数" GroupID="-1" />
<FIELD Index="4" Name="工程量" Title="工程量" Type="字符串" GroupID="-1" />
<FIELD Index="5" Name="" Title="单价" Type="分组头" GroupID="-1" />
<FIELD Index="6" Name="单价.综合单价" Title="综合单价" Type="字符串" GroupID="5" />
<FIELD Index="7" Name="" Title="其中" Type="分组头" GroupID="5" />
<FIELD Index="8" Name="单价.人工费" Title="人工费" Type="字符串" GroupID="7" />
<FIELD Index="9" Name="单价.材料费" Title="材料费" Type="字符串" GroupID="7" />
<FIELD Index="10" Name="单价.机械费" Title="机械费" Type="字符串" GroupID="7" />
<FIELD Index="11" Name="" Title="合价" Type="分组头" GroupID="-1" />
<FIELD Index="12" Name="合价.合计" Title="合计" Type="字符串" GroupID="11" />
<FIELD Index="13" Name="" Title="其中" Type="分组头" GroupID="11" />
<FIELD Index="14" Name="合价.人工费" Title="人工费" Type="字符串" GroupID="13" />
<FIELD Index="15" Name="合价.材料费" Title="材料费" Type="字符串" GroupID="13" />
<FIELD Index="16" Name="合价.机械费" Title="机械费" Type="字符串" GroupID="13" />
</FieldArray>
这是XML文件的一部分,我截取下来了,是个报表的XML,截取的部分是表头,问题是这样的,我现在需要解析这样的文件,利用DOM4J是可以解析的,查过资料,但是截取的文件有子节点,比如其中是分组头,其中下包括人工费,材料费,和机械费,这样的话应该如何解析它,大神们帮帮忙,最好能写个例子,mian函数,能测试解析结果的,在这里先谢谢你们了
------解决方案--------------------
public static void main(String[] args) throws XPathExpressionException,
ParserConfigurationException, SAXException, IOException
{
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);// never forget this!
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse("D:\\1.xml");
// 先取根
String itemStr = "//FieldArray/FIELD[@GroupID=-1]";
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr = xpath.compile(itemStr);
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 1; i <= nodes.getLength(); i++)
{
expr = xpath.compile("//FieldArray/FIELD[@GroupID=-1][position()="
+ i + "]/@Index");
Object index_id = expr.evaluate(doc, XPathConstants.STRING);
System.out.println("我是父节点,id=" + index_id.toString());
// 得到子节点
getSon("//FieldArray/FIELD[@GroupID=" + index_id.toString() + "]",
doc, xpath);
}
}
public static void getSon(String url, Document doc, XPath xpath)
throws XPathExpressionException