Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDOM 2获取特定XML元素的位置和索引_Java_Xml_Jdom_Jdom 2 - Fatal编程技术网

Java JDOM 2获取特定XML元素的位置和索引

Java JDOM 2获取特定XML元素的位置和索引,java,xml,jdom,jdom-2,Java,Xml,Jdom,Jdom 2,我有一个XML文档,我想使用现有元素的名称和属性在特定位置(索引)添加一个元素,所以我必须找到这个特定元素的索引 例如: <root org="667"> <myobject name="Propert1">KS7799</p> <myobject name="Propert2">88YSJJ</p> <myobject name="Propert3">KKQ87</p> <myobject name="P

我有一个XML文档,我想使用现有元素的名称和属性在特定位置(索引)添加一个元素,所以我必须找到这个特定元素的索引

例如:

<root org="667">
<myobject name="Propert1">KS7799</p>
<myobject name="Propert2">88YSJJ</p>
<myobject name="Propert3">KKQ87</p>
<myobject name="Propert4">122ZKK</p>
<myobject name="Propert5">LQLX9</p>
<myobject name="Propert6">LLQS8</p> // I want to get index of this element
<myobject name="Propert7">LLLX9</p>
<myobject name="Propert8">LLSSKNX9</p>
<myobject name="Propert9">MQLKSQ9</p>
<myobject name="Propert10">MLKLKQSQ9</p>
</root>

如果您知道要在后面插入的元素,则可以执行以下操作

您可以在集合上获得迭代器,只需添加元素。。。。比如:

Element toinsert = new Element("toinsert");

Iterator<Element> it = Dataelement.getChildren("myobject");
while (it.hasNext() && !"Propert6".equals(it.next().getAttribute("name"))) {
    // advance the iterator.
}
it.add(toinsert);
Element toinsert=新元素(“toinsert”);
迭代器it=Dataelement.getChildren(“myobject”);
while(it.hasNext()&&!“Propert6.equals(it.next().getAttribute(“name”)){
//推进迭代器。
}
添加(toinsert);
或者,您可以使用(例如)XPath…找到具有正确属性的元素

XPathFactory xpf = XPathFactory.instance();
XPath<Element> xp = xpf.compile("//myobject[@name='propert6']", Filters.element());
Element propert6 = xp.evaluateFirst(Dataelement);

Element toinsert = new Element("toinsert");
Element parent = toinsert.getParent();
parent.addContent(parent.indexOf(propert6), toinsert);
XPathFactory xpf=XPathFactory.instance();
XPath xp=xpf.compile(“//myobject[@name='propert6']”,Filters.element());
元素属性6=xp.evaluateFirst(数据元素);
元素toinsert=新元素(“toinsert”);
元素parent=toinsert.getParent();
addContent(parent.indexOf(propert6),toinsert);
XPathFactory xpf = XPathFactory.instance();
XPath<Element> xp = xpf.compile("//myobject[@name='propert6']", Filters.element());
Element propert6 = xp.evaluateFirst(Dataelement);

Element toinsert = new Element("toinsert");
Element parent = toinsert.getParent();
parent.addContent(parent.indexOf(propert6), toinsert);