如何在 XML 中从一个字段转到另一个字段


<table name="categoryConfigTable">
   <row>
      <field name="mediaConfigId">0</field>
      <field name="startDate">2005-01-01</field>
      <field name="endDate">2025-12-31</field>
      <field name="class">all</field>
      <field name="CID">10</field>
      <field name="sequenceNum">1</field>
      <field name="parentCID">NULL</field>
   </row>
</table>

这是我的XML文件的一部分,我想检索parentCID为空的CID值

我的 JAVA 代码的一部分是`public static void main(String[] args) {

    try {
         File fXmlFile = new File("/home/media.xml");
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(fXmlFile);    
        doc.getDocumentElement().normalize();
                System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
        NodeList nlist = doc.getElementsByTagName("field");
        int len = nlist.getLength();
        for (int i = 0; i < len; i++) {
            Node node = nlist.item(i);
            if (node.getNodeType() == Node.ELEMENT_NODE) {
                Element e = (Element)node;
                String attrVal = e.getAttribute("name"); 
                try {
                   if(attrVal.equalsIgnoreCase("parentCID") && e.getTextContent().equals("NULL"))
                        {
                             System.out.println("root element" +e.getTextContent());
                        }
                }
                catch (IOException ie) {
                    //exception handling left as an exercise for the reader
                }
            }
    }}catch (Exception e) {
        e.printStackTrace();
        }
}`

由此,我得到了所有具有空值parentCID,但我想去 CID 如何做到这一点?

你可以这样得到它

import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class ReadXMLFile {
    public static void main(String argv[]) {
        try {
            File fXmlFile = new File("src/test.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory
                    .newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(fXmlFile);
            doc.getDocumentElement().normalize();
            System.out.println("Root element :"
                    + doc.getDocumentElement().getNodeName());
            NodeList nList = doc.getElementsByTagName("row");
            System.out.println("----------------------------");
            for (int temp = 0; temp < nList.getLength(); temp++) {
                Node nNode = nList.item(temp);
                //System.out.println("nCurrent Element :" + nNode.getNodeName());
                if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                    Element eElement = (Element) nNode;
                    NodeList nList2 = eElement.getElementsByTagName("field");
                    String cidvalue=null;
                    for (int temp1 = 0; temp1 < nList2.getLength(); temp1++) {
                        Node nNode1 = nList2.item(temp1);
                        //System.out.println("nCurrent Element Internal :"+ nNode1.getNodeName());
                        if (nNode1.getNodeType() == Node.ELEMENT_NODE) {
                            Element eElement1 = (Element) nNode1;

                            if(eElement1.getAttribute("name").equalsIgnoreCase("CID"))
                             {

                                cidvalue=eElement1.getTextContent();
                             }
                             if(eElement1.getAttribute("name").equalsIgnoreCase("parentCID") && (eElement1.getTextContent().equalsIgnoreCase("NULL")))
                             {
                                // System.out.println(eElement1.getTextContent());
                                 System.out.println("row["+temp+"] where parentCID is NULL and corresponding CID value :: "+cidvalue);
                                 cidvalue=null;
                             }

                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

最新更新