Ich habe das folgende Stück der XML-Datei:XPath Namen des Knotens, wo Attribut einen bestimmten Wert hat
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SecureUML="http://RootElement/schemas/SecureUML/_zVWe83m5Eeae1LmHHETvPg/99" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://RootElement/schemas/SecureUML/_zVWe83m5Eeae1LmHHETvPg/99 ../SecureUML/SecureUML.profile.uml#_zVWe9Hm5Eeae1LmHHETvPg">
...
<SecureUML:Role xmi:id="_6l9aEKgBEea49okOlb9Hog" base_Classifier="_0YCfQKgBEea49okOlb9Hog"/>
<SecureUML:Role xmi:id="_7aToIKgBEea49okOlb9Hog" base_Classifier="_3xegQKgBEea49okOlb9Hog"/>
Wie kann ich den Namen des Knotens, wo die base_Classifier
zum Beispiel _0YCfQKgBEea49okOlb9Hog
oder _3xegQKgBEea49okOlb9Hog
? Diese 2 Strings Ich habe sie in einem ArrayList
so dass ich smth wie:
String tmp = items.get(j).getId();
String stereotypes = "//*[@base_Classifier="+tmp+"]";
NodeList nodeList1 = (NodeList) xpath.compile(stereotypes)
.evaluate(doc, XPathConstants.NODESET);
aber die nodeList1
leer ist.
Ich erwähne, dass ich für beide _0YCfQKgBEea49okOlb9Hog
und _3xegQKgBEea49okOlb9Hog
SecureUML:Role
erhalten möchte.
ich auch erwähnen, dass ich den Namespace mit smth wie
HashMap<String, String> prefMap = new HashMap<String, String>() {
/**
*
*/
private static final long serialVersionUID = 1L;
{
put("xmi", "http://www.omg.org/spec/XMI/20131001");
put("SecureUML", "http://RootElement/schemas/SecureUML/_zVWe83m5Eeae1LmHHETvPg/99");
}
};
Vielen Dank im Voraus registriert!
Madalina