【发布时间】:2011-10-14 17:33:00
【问题描述】:
我想读取与子节点关联的所有 CDATA 并将它们存储到 java ArrayList 中!如果您能提出一种简单快捷的方法,我将不胜感激!
谢谢!
In 希望有一个小例行程序测试 txnid 的特定值,并读取不同数组元素中的所有关联 CDATA 查询。
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<ZQueries txid="Group 1" version="1.0.0.0">
<ZQuery name="Some Name 1" savename="SomeFileName1.xml">
<![CDATA[
SELECT ...........
]]>
</ZQuery>
<ZQuery name="Some Name 2" savename="SomeFileName.xml">
<![CDATA[
SELECT .............
]]>
</ZQuery>
<ZQuery name="some name 3" savename="someFileName.xml">
<![CDATA[
SELECT ..............
]]>
</ZQuery>
</ZQueries>
<ZQueries txid="Group 2" version="1.0.0.0">
<ZQuery name="Some Name 1" savename="SomeFileName1.xml">
<![CDATA[
SELECT ...........
]]>
</ZQuery>
<ZQuery name="Some Name 2" savename="SomeFileName.xml">
<![CDATA[
SELECT .............
]]>
</ZQueries>
这是正确的方法吗!以下代码创建了所示的异常!你觉得我怎么能解决这个问题!
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(in); //build a JDOM doc from an input stream
ArrayList<String> queries = new ArrayList<String>();
Element root = doc.getRootElement();
Iterator elemIter = root.getDescendants();
while (elemIter.hasNext()) {
Element tempElem = (Element) elemIter.next();
if (root.getChild("ZQueries").getAttributeValue("txnid").equals(tempTxnid)) {
String CDATA = tempElem.getChildText("ZQueries");
queries.add(CDATA);
}
}
Exception in thread "AWT-EventQueue-0" java.security.PrivilegedActionException:
java.security.PrivilegedActionException: org.jdom.input.JDOMParseException: Error on
line 1: Premature end of file.
【问题讨论】:
标签: java xml xml-parsing