select * from session_history where create_time>'2011-06-27' and end_time<'2011-06-30'这个sql语句有什么错误吗? 执行查询 报错 "无效月份"! <ResponseData>
<ODRMSessionHistory id="1">
<ODRMSession
componentName="physerver-vss01"
ODSessionID="3c539b53-10e7-481e-809f-5aeaee9b3c7e"
setupDate="20110525T015118.912"
teardownDate="20110525T015253.252"
ODRMIpAddr="80.3.210.110"
SMIpAddr="80.3.230.2"
sessionGroup="NGOD-TEST0"
resultcode="200"
>
<PlayoutHistory time="20110525T015253.252"
> <StreamResources
ID="0"
SOP="Boston.Pump1.1"
filename="Boston.Pump.volume1A"
providerID="provider1.com"
assetID="STMV2011051918523930" segmentNumber="1"
/>
<EventHistory>
<StartStreamEvent
time="20110525T015119.305"
streamResourcesID="0"
NPT="0.000"
newState="PLAY"
scale="1.000000"
/>
<EndEvent
time="20110525T015253.252"
streamResourcesID="0"
reason="USER"
NPT="0.840"
description="User stop"
code="200"
/>
</EventHistory>
</PlayoutHistory>
</ODRMSession>
</ODRMSessionHistory>
</ResponseData>
我如何获得红色部分 assetID的值?
我已经这样写了 可是 还是获取不到SAXReader reader = new SAXReader();
Document document = null;
document = reader.read(new File("newFile.xml"));
Element root = document.getRootElement();
System.out.println("根节点" + root);
Attribute attribute=root.attribute("assetID" );
System.out.println("assetID节点"+attribute);assetID节点 null
高手帮帮忙!!
谢谢了!
谢一个先!
去掉那个0了 不过还是不行!还是“无效月份”对了 补充一句 oracle数据库!
比如表里格式为05-JUN-07,你就把'2011-06-27' 改为'27-JUN-11'
create_time end_time
27-6月 -11 09.33.05.913000 上午 01-7月 -11 03.34.54.317000 下午然后我改成select * from session_history where create_time>'27-6-11' and end_time<'30-6-11'
还是提示 无效月份
Iterator it = root.elementIterator();
while(it.hasNext()){
Element temp = (Element) it.next();
Iterator it2 = temp.elementIterator();
while(it2.hasNext()){
Element temp2 = (Element) it2.next();
Iterator it3 = temp2.elementIterator();
while(it3.hasNext()){
Element temp3 = (Element) it3.next();
Iterator it4 = temp3.elementIterator("StreamResources");
while(it4.hasNext()){
Element sr = (Element) it4.next();
for(Iterator attrs = sr.attributeIterator();attrs.hasNext();){
Attribute att = (Attribute) attrs.next();
if("assetID".equals(att.getName())){
System.out.println(att.getValue());
}
}
}
}
}
}
你看create_time是什么类型, 估计是timestamp吧
select * from session_history where create_time> to_date('2011-06-27', 'yyyy-mm-dd') and end_time<to_date('2011-06-307', 'yyyy-mm-dd')
至于dom4jassetID是 StreamResources 这个element下的属性,所以要先找到 Element StreamResources 然后再用Attribute方法获取
SAXReader reader = new SAXReader();
Document document = null;
document = reader.read(new File("newFile.xml"));
Element root = document.getRootElement();
System.out.println("根节点" + root);
Attribute attribute=root.attribute("assetID" );
System.out.println("assetID节点"+attribute);
改成:
SAXReader reader = new SAXReader();
Document document = null;
List list = document.selectNodes("//StreamResources/@assetID" );
Iterator iter=list.iterator();
while(iter.hasNext()){
Attribute attribute=(Attribute)iter.next();
System.out.println(attribute.getValue());
}
oracle数据库时间字段要用to_date()
to_date('2011-06-27','yyyymmdd');2、dom4j:Element root = document.getRootElement();
System.out.println("根节点" + root);
Attribute attribute=root.attribute("assetID" );
LZ用document.getRootElement();得到的只是根结点的Element
要得到其下子节点或孙子节点,还需要往下遍历。
或用root.selectNodes("");得到指定结点,然后再取其属性,value等值。
或用XPath指定到哪个子结点
select *
from session_history
where create_date > to_date('27-6-11','dd-MM-yy')
and end_time < to_date('30-6-11','dd-MM-yy')2.至于dom4jassetID是 StreamResources 这个element下的属性,所以要先找到 Element StreamResources 然后再用Attribute方法获取