XAML文件中标签的数量

问题描述 投票:0回答:1

我有一个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";
      }
}
java eclipse xml-parsing
1个回答
0
投票
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(); } } }
© www.soinside.com 2019 - 2024. All rights reserved.