`

java中如何直接获得xml中的某个指定的节点

阅读更多

    最近遇到一个问题,用java解析xml时,需要获得一个xml文档中指定的某个节点,当然最简单的办法就是遍历所有的节点,如某个节点满足条件,则是我们要的结果,但我不想遍历所有的节点,因为这个问题只是一个复杂过程中的一小步,它会被反复调用,因此我需要最直接的方法获得某个已知属性值的确定节点。因此,这个问题也可以概括为:有没有根据节点(或name)属性名获得该节点的原api。
     具体一些,有如下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>

   我想获得row="2" col="3"的节点,据我所查,好像没有直接的方法。
   变通一下,xml修改如下:

 

<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>

   这样呢?有没有直接的api,可以获得name为row2_col3的节点?同样,我也没有得到答案,大家有知道告诉小弟一下,不胜感激。
   实在没有办法,我就用了种“另类”的方式,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>

   这样看起来很不优雅,至少我是这么认为的。但这样却可以直接拿到你想要的节点:

 

org.jdom.Element root = document.getRootElement();
root.getChild("field2_3");

   目前,我就是这样解决的,但我感觉很不优雅,我想我的xml文档(配置)文件应该保持第一种或第二种格式更好些。所以请大家帮忙,看看有没有直接的方法(api).

2
1
分享到:
评论
3 楼 DavyLee 2009-03-03  
greatghoul 写道

和html一样的道理嘛org.w3c.dom 接口 DocumentElement getElementById(String elementId)

已经说了,我没有找到这样得api,你自己可以找找看
2 楼 greatghoul 2009-03-03  
和html一样的道理嘛
org.w3c.dom
接口 Document
Element getElementById(String elementId)
1 楼 咖啡舞者 2009-03-02  
XPATH 看看

相关推荐

    Java使用正则表达式提取XML节点内容的方法示例

    在Java中,可以使用正则表达式来提取XML节点内容。下面是一个简单的示例: ```java public static List&lt;String&gt; getContext(String html) { List&lt;String&gt; resultList = new ArrayList(); Pattern p = Pattern....

    java XML转成LIST可以转成指定的类数组

    在Java编程中,XML...通过以上步骤,我们可以方便地在Java中实现XML到指定类型List的转换,同时支持多层数据结构的处理。在实际开发中,根据具体需求调整模型类和转换方法,可以灵活应对各种XML数据结构的处理。

    dom4j 解析(读取) xml 节点数据

    在本教程中,我们将深入探讨如何使用DOM4J解析(读取)XML节点数据,不受XML层级的限制。 首先,确保你已经下载了必要的依赖,即DOM4J库。通常,这将是一个名为`dom4j-x.x.x.jar`的文件,其中x.x.x是DOM4J的版本号...

    Java解析和生成XML.pdf

    - `@XmlElement`:可以使用name属性来指定Java对象属性在XML中对应的节点名称。 - `@XmlRootElement`:通常与`@XmlType`和`@XmlAccessorType`一起使用,用于标识Java类对应XML的根节点。 - `@XmlAttribute`:可以...

    Java解析XML工具类--(java源码)

    * 解析某个xml文件,并在内存中创建DOM树 * @param xmlFile 要解析的XML文件 * @return 解析某个配置文件后的Document * @throws Exception xml文件不存在 */ public static Document parse( String xml...

    根据XSD检查XML并修复

    附件是我写的一个demo程序,该程序的功能是根据一个定义好的XSD文件去检查指定的XML文件是否满足XSD的约束。 这里的约束比标准的约束要弱一些,比如...2 根据得到XML结构,逐一检查目标XML中是否存在指定的元素或属性。

    ORACLE操作XML函数

    此函数用于提取XML文档中指定节点的值。 - **语法**: ```sql EXTRACT(XMLTYPE_instance, XPath_string[, namespace_string]) ``` - **参数**: - `XMLTYPE_instance`:XML数据类型的字段或变量。 - `XPath_...

    java xml解析

    * 获得某节点下的某个子节点(指定子节点名称,和某个属性的值) * 即获取parentElement下名字叫childName,并且属性attributeName的值为attributeValue的子结点 * @param parentElement 要获取子节点的...

    java xml文件解析

    通过该接口,可以循环某个节点集合,并且对文档结构所做的任何改变(如添加或删除节点),在节点列表中会立即反映出来。 **DOM API:** W3C发布的针对DOM方式的一组Java接口,规范了以DOM方式操作XML文档的方法。...

    使用XStream 多集合生成xml

    例如,可以使用`asAttribute()`方法使某个字段作为XML元素的属性,而不是子节点;或者使用`omitter`和`converter`来控制序列化过程。 总之,"使用XStream多集合生成xml"涉及了Java对象到XML的转换,特别是处理多个...

    JAVA 读取xml文件

    在Java编程中,读取XML文件是常见的任务,特别是在处理配置、数据交换或者序列化时。XML(eXtensible Markup Language)是一种结构化的数据格式,具有良好的可读性和易于解析的特性。以下是一个详细的知识点说明,...

    扩展PlugIn插件解析XML

    这包括指定XML文档的根节点,以及匹配XML元素与Java对象的映射关系。 4. 创建接口:在Java代码中,定义一个接口,该接口将作为解析后的对象的父类或者实现类,这样可以确保所有解析的对象都具有相同的方法签名,...

    castor1-2(java and xml 数据绑定过程所需数据包)

    映射文件通常是XML格式,其中指定了XML节点如何对应到Java类的属性。 2. **序列化(Serialization)**:当需要将Java对象转换为XML时,Castor会根据映射文件将对象的属性转换为XML元素和属性。这个过程通常发生在...

    将归档流程退回前面某节点1

    如果在执行过程中出现错误,例如与JAXP(Java API for XML Processing)相关的错误,可以通过修改`resin.conf`配置文件和删除`jaxp.jar`来解决。Resin是一个Java应用服务器,`compiler="internal"`可能是指Resin内置...

    java解析xml文档的常用方法

    它的优点是可以立即开始解析,不需要加载整个 XML 文档,并且可以在某个条件得到满足时停止解析。SAX 还比 DOM 快许多。使用 SAX 需要实现 `ContentHandler` 接口,并使用 `SAXParser` 对象来解析 XML 文档。 3. ...

    xml文件的操作,包括xml文件读写,添加删除结点等

    读取XML文件中的数据,可以通过遍历节点来实现,如获取某个属性或元素文本: ```python for child in root: print(child.tag, child.attrib) print(child.text) ``` 写入XML文件则需要创建新的`Element`对象,...

    自定义简单XML的读与存,便捷工具类

    例如,`CacheNodeVO`可能表示XML文件中某个节点的数据,包含了一些属性或字段,用于存储XML元素的值。而`CacheNodeBaseVO`可能是基类,提供了一些共性属性或方法。 在`XMLUtils`中,可能包含如下核心方法: 1. `...

    Java使用SOAP获取webservice实例解析

    - 本例中的XML文件`QQOnlineService.XML`应该被替换为获取天气预报所需的正确XML格式。 - 代码中使用的URL与实际需求不符,请根据实际情况调整。 - 本示例中的错误处理较为简单,实际应用中需要更加全面的异常处理...

    xml转换教程,ppt和示例代码

    - SQL与XML的集成,如SQL Server的FOR XML子句,允许直接在SQL查询中生成或处理XML。 6. **XML在应用程序配置中的应用**: - 许多应用程序使用XML文件作为配置文件,因为XML的结构清晰,易于阅读和编辑。 7. **...

    Java pom.xml parent引用报错问题解决方案

    通过上述方法,大多数pom.xml中parent引用报错的问题都能够得到解决。在实际操作过程中,需要根据错误提示和日志信息进行综合分析和排查,找到问题的真正原因,然后进行针对性的解决。如果在解决问题过程中遇到技术...

Global site tag (gtag.js) - Google Analytics