
下个dom4j包我下面的方法笨了点不知道还有好的不
import javaioFile;
import javautilIterator;
import orgdom4j;
import orgdom4jioSAXReader;
public class ResultXmlTest1 {
public static void main(String args[])
{
SAXReader reader=new SAXReader();
try
{
Document doc=readerread(new File("resultxml"));
Element root=docgetRootElement();
for(Iterator ite=rootelementIterator();itehasNext();)
{
Element ele=(Element)itenext();
for(Iterator iter=eleelementIterator();iterhasNext();)
{
Element elem=(Element)iternext();
//Systemoutprintln(elemgetName());
for(Iterator itera=elemelementIterator();iterahasNext();)
{
Element eleme=(Element)iteranext();
//Systemoutprintln(elemegetName());
for(Iterator iterat=elemeelementIterator();iterathasNext();)
{
Element elemem=(Element)iteratnext();
//Systemoutprintln(elememgetName());
for(Iterator iterato=elememelementIterator();iteratohasNext();)
{
Element elememe=(Element)iteratonext();
//Systemoutprintln(elememegetName());
for(Iterator last=elememeelementIterator();lasthasNext();)
{
Element elemLast=(Element)lastnext();
//Systemoutprintln(elemLastgetName());
for(Iterator at=elemLastattributeIterator();athasNext();)
{
Attribute att=(Attribute)atnext();
if(attgetName()equals("start"))
Systemoutprintln(attgetText());
}
}
}
}
}
}
}
}catch(DocumentException e)
{
eprintStackTrace();
}
}
}
代码如下:
import javaxxmlparsersDocumentBuilder;
import javaxxmlparsersDocumentBuilderFactory;
import orgw3cdomDocument;
import orgw3cdomElement;
import orgw3cdomNodeList;
public class FileTest {
/
@param args
/
public static void main(String[] args) {
DocumentBuilderFactory dbf = DocumentBuilderFactorynewInstance();
try {
DocumentBuilder db = dbfnewDocumentBuilder();
Document doc = dbparse("d:/testxml");
//得到根节点
Element root = docgetDocumentElement();
NodeList nl = rootgetElementsByTagName("id");
Element e = (Element) nlitem(0);
String id=egetTextContent();
Systemoutprintln("id的值为:"+id);
}catch(Exception e){
eprintStackTrace();
}
}
}
上面的代码中我把
<message msgType="response" msgId="String" timestampCreated="2010-5-13 15:55:54" version="String">
<response>
<code>0</code>
<description>成功</description>
</response>
<body bodyId="1">
<id>11223344</id>
</body>
</message>
这段内容放到了D盘下的testxml文件中
你如果要用可以直接将得到的给字符串加载成Document对象,就可以取到了。
�0�2�0�2�0�2 最近遇到一个问题,用java解析xml时,需要获得一个xml文档中指定的某个节点,当然最简单的办法就是遍历所有的节点,如某个节点满足条件,则是我们要的结果,但我不想遍历所有的节点,因为这个问题只是一个复杂过程中的一小步,它会被反复调用,因此我需要最直接的方法获得某个已知属性值的确定节点。因此,这个问题也可以概括为:有没有根据节点(或name)属性名获得该节点的原api。
�0�2�0�2�0�2�0�2 具体一些,有如下xml文档:<sheet<field row="2" col="2" type="int"DEA_XZ</field2_2
<field row="2" col="3" type="string"RTP_ID</field2_3
<field row="2" col="4" type="string"DEA_YEAR</field2_4
<field row="2" col="7" type="int"DEA_RTP_TYPE</field2_7</sheet�0�2�0�2 我想获得row="2" col="3"的节点,据我所查,好像没有直接的方法。
�0�2�0�2 变通一下,xml修改如下:�0�2<sheet<field name="row2_col2" type="int"DEA_XZ</field2_2
<field name="row2_col3" type="string"RTP_ID</field2_3
<field name="row2_col4" type="string"DEA_YEAR</field2_4
<field name="row2_col7" type="int"DEA_RTP_TYPE</field2_7</sheet�0�2�0�2 这样呢?有没有直接的api,可以获得name为row2_col3的节点?同样,我也没有得到答案,大家有知道告诉小弟一下,不胜感激。
�0�2�0�2 实在没有办法,我就用了种“另类”的方式,xml如下:<sheet<field2_2 type="int"DEA_XZ</field2_2
<field2_3 type="string"RTP_ID</field2_3
<field2_4 type="string"DEA_YEAR</field2_4
<field2_7 type="int"DEA_RTP_TYPE</field2_7</sheet�0�2�0�2 这样看起来很不优雅,至少我是这么认为的。但这样却可以直接拿到你想要的节点:�0�2orgjdomElement root = documentgetRootElement();
�0�2�0�2 目前,我就是这样解决的,但我感觉很不优雅,我想我的xml文档(配置)文件应该保持第一种或第二种格式更好些。所以请大家帮忙,看看有没有直接的方法(api)
以上就是关于如何用java取得XML节点的属性值全部的内容,包括:如何用java取得XML节点的属性值、java 从XML中取出某个节点的值、java中如何直接获得xml中的某个指定的节点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)