我有一个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";
}
}
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
public class a {
public static void main(String[] args) {
try {
File inputFile = new File("sample.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
dbFactory.setValidating(false);
DocumentBuilder dBuilder;
dBuilder=dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
doc.getDocumentElement().normalize();
XPath xPath = XPathFactory.newInstance().newXPath();
String XPathExpression = "count(//ActorName[@Enabled='True'])";
// Get the count of the elements with the given properties
Number cnt = (Number)xPath.compile(XPathExpression).evaluate(doc, XPathConstants.NUMBER);
// Convert the Float value to an int value and output
System.out.println("Items: "+cnt.intValue());
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (XPathExpressionException e) {
e.printStackTrace();
}
}
}