谁会dom4j解析xml啊?
<?xml version="1.0" encoding="gbk" standalone="yes" ?>
<report>
<report-name name="Keywords performance report" />
<date-range date='Nov 23, 2010 - Nov 25, 2010'/>
<table>
<columns>
<column name="cost" />
<column name="AveragePosition" />
</columns>
<rows>
<row date="2010-11-22" campaignid="50552987" campaign="师" adgroupid="1535951867" adgroup="班" keywordid="6645585945" kwSite="班" siteKwStatus="Active" qualityScore="4" adwordsType="Search Only" maxCpc="6000000" Impressions="32" clicks="2" cost="10560000" AveragePosition="2.0625" />
</rows>
</table>
</report>
麻烦帮把row 里面的数据解析出来。! 真悲剧,我不会。
<?xml version="1.0" encoding="gbk" standalone="yes" ?>
<report>
<report-name name="Keywords performance report" />
<date-range date='Nov 23, 2010 - Nov 25, 2010'/>
<table>
<columns>
<column name="cost" />
<column name="AveragePosition" />
</columns>
<rows>
<row date="2010-11-22" campaignid="50552987" campaign="师" adgroupid="1535951867" adgroup="班" keywordid="6645585945" kwSite="班" siteKwStatus="Active" qualityScore="4" adwordsType="Search Only" maxCpc="6000000" Impressions="32" clicks="2" cost="10560000" AveragePosition="2.0625" />
</rows>
</table>
</report>
麻烦帮把row 里面的数据解析出来。! 真悲剧,我不会。
//将字符串转换成文档对象
doc = DocumentHelper.parseText(xmlSchema);
//获取根节点
Element root = doc.getRootElement();
for (Iterator fields = root.elementIterator("rows"); fields.hasNext();) {
Element element = (Element) fields.next();
String date = element.elementTextTrim("date");
...其他同理处理 }
import java.io.FileInputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class PaymentAnalysisXML {
public static void main(String[] args) {
try{
String filePath = "src/this.xml"; //文件路径(任何xml文件,但要保证路径啊!)
FileInputStream inputStream = new FileInputStream(new File(filePath));
new PaymentAnalysisXML().readContentFromInputStream(inputStream);
} catch(Exception e) {
e.printStackTrace();
}
}
public void readContentFromInputStream(FileInputStream inputStream) {
try {
Document document = new SAXReader().read(inputStream);
recursionElementGetContent(document.getRootElement());
} catch (DocumentException e) {
e.printStackTrace();
}
}
public void recursionElementGetContent(Element element2) {
List<Element> list = element2.elements();
if(list.size() > 0) {
for(int i=0; i<list.size(); i++) {
Element element = list.get(i);
if(element.isTextOnly()) {
System.out.println(element.getName() + " == " + element.getTextTrim());
continue;
}
recursionElementGetContent(element);
}
}
}
}
抱歉:
正确的是 Node rowsNode = document.selectSingleNode("/report/table/rows");
System.out.println("rows 结果:" + rowsNode.asXML());
肯定得到了。。