У меня есть такая строка xml, как это, и я хочу получить значение атрибута «Element/xmi: type/name». Это означает, что я хочу вернуть имя элемента type-activity только в цикле для каждого элемента. Как мне это сделать? Я использую библиотеку javax.xml.parsers.Получение значения атрибута в xml, сгенерированном из UML-моделей
<element xmi:idref="EAID_53685791_7F62_48a2_8BE8_DB7513AC776A" xmi:type="uml:Activity" name="Return error value" scope="public">
<model package="EAPK_263A2FE8_8346_4d1e_A851_39B9D573143D" tpos="0" ea_localid="98" ea_eleType="element"/>
<properties isSpecification="false" sType="Activity" nType="0" scope="public" isAbstract="false"/>
<project author="shiva999" version="1.0" phase="1.0" created="2016-08-16 09:44:25" modified="2016-08-16 10:13:51" complexity="1" status="Proposed"/>
<code gentype="<none>"/>
<style appearance="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=1;HSwimLanes=1;BorderStyle=0;"/>
<modelDocument/>
<tags/>
<xrefs/>
<extendedProperties tagged="0" package_name="Activity Model"/>
<links>
<ControlFlow xmi:id="EAID_873CF8C4_0192_4099_8F66_6B36FA760AB6" start="EAID_53685791_7F62_48a2_8BE8_DB7513AC776A" end="EAID_D2EB427B_3AFD_4700_BD72_13B36684E595"/>
<ControlFlow xmi:id="EAID_2FECE2AE_6CA0_48a4_82AE_D743D257F37C" start="EAID_0D85B784_4393_429e_9BA1_7983BD7891CA" end="EAID_53685791_7F62_48a2_8BE8_DB7513AC776A"/>
</links>
</element>
Ниже приведен код, который я написали. Получение ошибки как «Тип метода (int) не определен для типа NodeLis». Я новичок в XML разбора и отсылая электронные учебники
public class DomXMLParser {
public static void main(String[] args) throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(new File("activity.xml"));
NodeList nodeList = document.getElementsByTagName("Type");
for(int x=0,size= nodeList.getLength(); x<size; x++) {
System.out.println(nodeList.type(x).getAttributes().getNamedItem("name").getNodeValue());
}
}
}
Привет, Я хотел бы использовать XPath: https://docs.oracle.com/javase/7/docs/api/javax/xml/xpath/package-summary.html поддержка является родным, это просто вопрос настройки читателя и передачи ему правильного пути. – BugProtectionActivist
@BugProtectionActivist Я отправил xpath, который использовал. Нет ожидаемого выхода. Пожалуйста, помогите –