我无法从根元素中删除元素。以下是xml
的示例 <Grid>
<Grid x:Name="VideoHolder">
<vlc:VlcControl />
</Grid>
<Grid x:Name="MenuHolder">
<!— content —>
</Grid>
</Grid>
我想删除
<ADMIN-DATA>
<DATA-DECLARATION ID="Hi"> </DATA-DECLARATION>
<DATA ID="Hi">
<DATA-DECLARATION-REF ID-REF="Hi"> </DATA-DECLARATION-REF>
<DATA ID="Hi">
<DATA-DECLARATION ID="Delete"> </DATA-DECLARATION>
</DATA>
</DATA>
</ADMIN-DATA>
下面的JDOM代码
<DATA-DECLARATION ID="Delete"> </DATA-DECLARATION>
在root.removeContent(dataDecId)之上;不管用。纠正我。
答案 0 :(得分:1)
请注意<DATA-DECLARATION ID="Delete"> </DATA-DECLARATION>
不是根元素的子元素....它是DATA
元素的子元素,而DATA
元素又是ADMIN-DATA
元素的子元素,最后是DATA-DECLARATION ID="Delete"
元素的子元素。
您不能要求根元素删除root.removeContent(dataDecId)
,因为它不是直接的孩子。
请注意,孩子自己知道它的位置,因此,更简单的方法是将dataDecId.detach()
更改为=SUMPRODUCT(SUMIFS(Perf_Data[Gross Claims Paid (non-cumulative)],Perf_Data[Year (AY/UWY)],"<"&'OUTPUT - S.19.01'!$A24,Perf_Data[Development Year],">="&Perf_Data[Year (AY/UWY)]+15,Perf_Data[Applicable Line of Business],LoB_Selection),Perf_Data[@[Currency check and multiplier]])
答案 1 :(得分:0)
好吧,对我来说,看起来.xml文件中有一些错误。您正在尝试获取ID-REF字段,而删除仅具有ID。
此外,我怀疑你的XML文件是否正确,因为你有一个拼写错误:
<DATA-DECLARATION-REF ID-REF="Hi"> </ATA-DECLARATION-REF>
这里有两个不同的标签:
<DATA-DECLARATION ID="Delete"> </DATA-DECLARATION-REF>
。
答案 2 :(得分:0)
另一种方式:
XPATH以清晰的方式组合标记和值:
XPath xPath = XPathFactory.newInstance().newXPath();
String expression="//DATA-DECLARATION[@ID='Delete']"; // self-explained
NodeList nodes = (NodeList) xPath.compile(expression).evaluate(document, XPathConstants.NODESET);
for(int i=0; i<nodes.getLength(); i++)
{
Node the_node = nodes.item(i);
if(the_node instanceof Element)
{
Element the_element=(Element) the_node;
// FATHER
Node father=the_node.getParentNode();
// SUPPRESSION
father.removeChild(the_node);
// First one only ?
break;
}
}