最近遇到一个问题,用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).
分享到:
相关推荐
在Java中,可以使用正则表达式来提取XML节点内容。下面是一个简单的示例: ```java public static List<String> getContext(String html) { List<String> resultList = new ArrayList(); Pattern p = Pattern....
在Java编程中,XML...通过以上步骤,我们可以方便地在Java中实现XML到指定类型List的转换,同时支持多层数据结构的处理。在实际开发中,根据具体需求调整模型类和转换方法,可以灵活应对各种XML数据结构的处理。
在本教程中,我们将深入探讨如何使用DOM4J解析(读取)XML节点数据,不受XML层级的限制。 首先,确保你已经下载了必要的依赖,即DOM4J库。通常,这将是一个名为`dom4j-x.x.x.jar`的文件,其中x.x.x是DOM4J的版本号...
- `@XmlElement`:可以使用name属性来指定Java对象属性在XML中对应的节点名称。 - `@XmlRootElement`:通常与`@XmlType`和`@XmlAccessorType`一起使用,用于标识Java类对应XML的根节点。 - `@XmlAttribute`:可以...
在处理XML文档时,我们可能会遇到一个问题:当尝试删除某个节点时,该节点虽然被标记为删除,但在实际输出或解析时,它可能仍然存在,表现为一个空节点。这种情况通常是由于XML库或编程语言的特定行为导致的。本文将...
* 解析某个xml文件,并在内存中创建DOM树 * @param xmlFile 要解析的XML文件 * @return 解析某个配置文件后的Document * @throws Exception xml文件不存在 */ public static Document parse( String xml...
附件是我写的一个demo程序,该程序的功能是根据一个定义好的XSD文件去检查指定的XML文件是否满足XSD的约束。 这里的约束比标准的约束要弱一些,比如...2 根据得到XML结构,逐一检查目标XML中是否存在指定的元素或属性。
此函数用于提取XML文档中指定节点的值。 - **语法**: ```sql EXTRACT(XMLTYPE_instance, XPath_string[, namespace_string]) ``` - **参数**: - `XMLTYPE_instance`:XML数据类型的字段或变量。 - `XPath_...
* 获得某节点下的某个子节点(指定子节点名称,和某个属性的值) * 即获取parentElement下名字叫childName,并且属性attributeName的值为attributeValue的子结点 * @param parentElement 要获取子节点的...
通过该接口,可以循环某个节点集合,并且对文档结构所做的任何改变(如添加或删除节点),在节点列表中会立即反映出来。 **DOM API:** W3C发布的针对DOM方式的一组Java接口,规范了以DOM方式操作XML文档的方法。...
例如,可以使用`asAttribute()`方法使某个字段作为XML元素的属性,而不是子节点;或者使用`omitter`和`converter`来控制序列化过程。 总之,"使用XStream多集合生成xml"涉及了Java对象到XML的转换,特别是处理多个...
在Java编程中,读取XML文件是常见的任务,特别是在处理配置、数据交换或者序列化时。XML(eXtensible Markup Language)是一种结构化的数据格式,具有良好的可读性和易于解析的特性。以下是一个详细的知识点说明,...
这包括指定XML文档的根节点,以及匹配XML元素与Java对象的映射关系。 4. 创建接口:在Java代码中,定义一个接口,该接口将作为解析后的对象的父类或者实现类,这样可以确保所有解析的对象都具有相同的方法签名,...
映射文件通常是XML格式,其中指定了XML节点如何对应到Java类的属性。 2. **序列化(Serialization)**:当需要将Java对象转换为XML时,Castor会根据映射文件将对象的属性转换为XML元素和属性。这个过程通常发生在...
如果在执行过程中出现错误,例如与JAXP(Java API for XML Processing)相关的错误,可以通过修改`resin.conf`配置文件和删除`jaxp.jar`来解决。Resin是一个Java应用服务器,`compiler="internal"`可能是指Resin内置...
它的优点是可以立即开始解析,不需要加载整个 XML 文档,并且可以在某个条件得到满足时停止解析。SAX 还比 DOM 快许多。使用 SAX 需要实现 `ContentHandler` 接口,并使用 `SAXParser` 对象来解析 XML 文档。 3. ...
读取XML文件中的数据,可以通过遍历节点来实现,如获取某个属性或元素文本: ```python for child in root: print(child.tag, child.attrib) print(child.text) ``` 写入XML文件则需要创建新的`Element`对象,...
例如,`CacheNodeVO`可能表示XML文件中某个节点的数据,包含了一些属性或字段,用于存储XML元素的值。而`CacheNodeBaseVO`可能是基类,提供了一些共性属性或方法。 在`XMLUtils`中,可能包含如下核心方法: 1. `...
- 本例中的XML文件`QQOnlineService.XML`应该被替换为获取天气预报所需的正确XML格式。 - 代码中使用的URL与实际需求不符,请根据实际情况调整。 - 本示例中的错误处理较为简单,实际应用中需要更加全面的异常处理...
- SQL与XML的集成,如SQL Server的FOR XML子句,允许直接在SQL查询中生成或处理XML。 6. **XML在应用程序配置中的应用**: - 许多应用程序使用XML文件作为配置文件,因为XML的结构清晰,易于阅读和编辑。 7. **...