У меня есть XAML-файл, в котором теги выглядят примерно так:
<ActorName Name="Nancy" Enabled="False">
<ActorName Name="Shivani" Enabled="True">
Я приложил приведенный ниже код, который считает эти теги, но я не могу его подвести. Как вернуть сумму всех тегов, которые имеют Enabled="True">
?
package com.test;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class Test {
public static void main(String[] args) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try {
builder = factory.newDocumentBuilder();
Document doc=builder.parse("C:\\Users\\nprabhasini\\Desktop\\ShivaSoft.xml");
NodeList nodes = doc.getElementsByTagName("ActorName");
for(int i=0;i<nodes.getLength();i++)
{
printNodeInfo(nodes.item(i));
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
static void printNodeInfo(Node node)
{
if(node.hasAttributes())
{
NamedNodeMap rootAtt = node.getAttributes();
for(int i=0;i<rootAtt.getLength();i++)
{
String s1=rootAtt.item(i).getNodeValue();
if(s1.equalsIgnoreCase("True"))
{
i++;
System.out.println(i);
}
}
}
}
static String nodeType(short type) {
switch(type) {
case Node.ELEMENT_NODE: return "Element";
case Node.ATTRIBUTE_NODE: return "Attribute";
}
return "Unidentified";
}
}