java - 解析并比较 XML 标签文本以获得同级

标签 java android xml-parsing

我正在解析 NOAA XML,如下所示:

<time-layout time-coordinate="local" summarization="12hourly">
<layout-key>k-p12h-n14-1</layout-key>
<start-valid-time period-name="Tonight">2012-12-18T18:00:00-08:00</start-valid-time>
<start-valid-time period-name="Wednesday">2012-12-19T06:00:00-08:00</start-valid-time>
<start-valid-time period-name="Wednesday Night">2012-12-19T18:00:00-08:00</start-valid-time>
<start-valid-time period-name="Thursday">2012-12-20T06:00:00-08:00</start-valid-time>
<start-valid-time period-name="Thursday Night">2012-12-20T18:00:00-08:00</start-valid-time>
<start-valid-time period-name="Friday">2012-12-21T06:00:00-08:00</start-valid-time>
<start-valid-time period-name="Friday Night">2012-12-21T18:00:00-08:00</start-valid-time>
<start-valid-time period-name="Saturday">2012-12-22T06:00:00-08:00</start-valid-time>
<start-valid-time period-name="Saturday Night">2012-12-22T18:00:00-08:00</start-valid-time>
<start-valid-time period-name="Sunday">2012-12-23T06:00:00-08:00</start-valid-time>
<start-valid-time period-name="Sunday Night">2012-12-23T18:00:00-08:00</start-valid-time>
<start-valid-time period-name="Monday">2012-12-24T06:00:00-08:00</start-valid-time>
<start-valid-time period-name="Monday Night">2012-12-24T18:00:00-08:00</start-valid-time>
<start-valid-time period-name="Christmas Day">2012-12-25T06:00:00-08:00</start-valid-time>
</time-layout>  

文档中还有其他标签,但我想要 k-p12h-n14-1 标签。

如何获取 k-p12h-n14-1 后面的周期名称的 period-name="*"?

这是一个FULL XML FILE EXAMPLE

我尝试使用以下方法来解决这个问题:

List<XmlDom> wxday = xml.tags("time-layout","time-coordinate","summarization");
String wxd = wxday.child("layout-key");
String wxdd = wxday.equals("k-p12h-n14-1");
kind of lost.... 

感谢您的任何想法。

最佳答案

您可以使用以下代码:

    File fXmlFile = new File("MapClick.php.xml");
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
    Document doc = dBuilder.parse(fXmlFile);

    Element rootElement = doc.getDocumentElement();

    NodeList nodeList = rootElement.getElementsByTagName("layout-key");
    int size = nodeList.getLength();

    for (int i = 0; i < size; i++) {
        Node currentNode = nodeList.item(i);

        if (currentNode.getTextContent().trim().equals("k-p12h-n14-1")) {
            while (currentNode.getNextSibling() != null) {
                currentNode = currentNode.getNextSibling();

                if (currentNode.getNodeName().equals("start-valid-time")) {
                    System.out.println(((Element)currentNode).getAttribute("period-name"));
                }
            }
        }
    }

关于java - 解析并比较 XML 标签文本以获得同级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13946563/

相关文章:

JavaFX 显示使用 Controller 在场景生成器中创建的 View

java - Errorr无效的 XML 字符 (Unicode : 0xb) was found in the element content of the document while parsing xml with DOM parser

objective-c - 需要关于哪个选项可以有效地在 iPad 上存储数据的建议

c# - 替换 XML 文本的最佳方式

java - 如何在所有线程完成之前保持 JVM Activity ?

java - 有没有办法在没有任何网络的情况下从手机获取地理定位

java - 从注解引用参数化类型

android - CoordinatorLayout 中的 ViewPager 意外收缩

Android 开发初学者 : What are resources and what are their purposes?

android - Android 6 上未调用短信广播接收器