0
XSLT/Java DOMがこれを実現する最善の方法であるかどうかはわかりません。
XPathExpression delExpr = xpath.compile("//flexTM/attrGroupMany[starts-with(@name,'allergenRelatedInformation')]/row");
Object obj = expr.evaluate(doc, XPathConstants.NODESET);
NodeList row = (NodeList) obj;
for(int i = 1; i < row.getLength(); i++)
{
Node attr = row.item(i);
Element e = (Element) attr;
System.out.println(row.item(i).getParentNode().getNodeName());
row.item(1).getParentNode().removeChild(e);
doc.normalize();
i-- }
<attrGroupMany name="manufacturer">
<row>
<attr name="gln">123456</attr>
<attr name="name">ABC Inc</attr>
</row>
</attrGroupMany>
<attrGroupMany name="allergenRelatedInformation">
<row>
<attr name="allergenSpecificationAgency">FDA</attr>
<attr name="allergenSpecificationName">BIG 8</attr>
<attrGroupMany name="allergen">
<row>
<attr name="allergenTypeCode">AC</attr>
<attr name="levelOfContainmentCode">FREE_FROM</attr>
</row>
</attrGroupMany>
</row>
<row>
<attr name="allergenSpecificationAgency">FDA</attr>
<attr name="allergenSpecificationName">BIG 8</attr>
<attrGroupMany name="allergen">
<row>
<attr name="allergenTypeCode">AE</attr>
<attr name="levelOfContainmentCode">FREE_FROM</attr>
</row>
</attrGroupMany>
</row>
<row>
<attr name="allergenSpecificationAgency">FDA</attr>
<attr name="allergenSpecificationName">BIG 8</attr>
<attrGroupMany name="allergen">
<row>
<attr name="allergenTypeCode">AF</attr>
<attr name="levelOfContainmentCode">FREE_FROM</attr>
</row>
</attrGroupMany>
</row>
<row>
<attr name="allergenSpecificationAgency">FDA</attr>
<attr name="allergenSpecificationName">BIG 8</attr>
<attrGroupMany name="allergen">
<row>
<attr name="allergenTypeCode">AM</attr>
<attr name="levelOfContainmentCode">FREE_FROM</attr>
</row>
</attrGroupMany>
</row>
</attrGroupMany>
私の場合、JDOMを使用してナビゲートする方法を教えてください。どうもありがとう。 – user3092856
あなたのプログラムから期待している出力XMLは何ですか? – ssanrao