Dom解析器不起作用-显示的输出全部为空

溅水器

我想解析这个名为“ Weather.xml”的xml文件,如下所示:

<?xml version ="1.0" encoding="UTF-8" ?> 
   <weather> 
       <forecast_information>
                                    <city data="Pittsford, NY" />
                                    <postal_code data="14534" /> 
                                    <forecast_date data="2015-03-12" /> 
                                    <unit_system data="US" />
                                  <condition data = "Mostly Cloudy" /> 
                                   <temp_f data ="42" /> 
                                   <wind_condition data="Wind: NW at 7 mph" /> 
                                    <day_of_week data="Sat" /> 
                                    <low data="32"/> 
                                   <high data = "45" />
                                   <condition data="Rain and Snow" />
          </forecast_information>
         <forecast_information> 
                                    <city data= "Rochester, NY" /> 
                                    <postal_code data="14623" /> 
                                   <forecast_date data= "2015-03-12" /> 
                                   <unit_system data="US" /> 
                                    <condition data="Partly Cloudy" /> 
                                    <temp_f data="40" />
                                    <wind_condition data="Wind: St at 3.5 mph"       />
                                     <day_of_week data="Mon" /> 
                                     <low data="30" /> 
                                     <high data="40" />
                                     <condition data="Bright and Sunny" />
            </forecast_information> 
   </weather> 

我已经通过以下方式为其编码了DOM解析器:

public class DomParserDemo {
 public static void main(String[] args){

  try { 
     File inputFile = new File("Weather.xml");
     DocumentBuilderFactory dbFactory 
        = DocumentBuilderFactory.newInstance();
     DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
     Document doc = dBuilder.parse(inputFile);
     doc.getDocumentElement().normalize();
     System.out.println("Root element :" 
        + doc.getDocumentElement().getNodeName());
     NodeList nList = doc.getElementsByTagName("forecast_information");
     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;
           System.out.println("City : " + eElement.getAttribute("city"));

           System.out.println("Postal_Code : " + eElement.getElementsByTagName("postal_code").item(0).getTextContent());
           System.out.println("Forecast date : " + eElement.getElementsByTagName("forecast_date").item(0).getTextContent());
           System.out.println("Unit System : " + eElement .getElementsByTagName("unit_system") .item(0).getTextContent());
           System.out.println("Condition : " + eElement .getElementsByTagName("condition") .item(0).getTextContent());
           System.out.println("Wind Condition : " + eElement .getElementsByTagName("wind_condition") .item(0).getTextContent());
           System.out.println("Day of week : " + eElement .getElementsByTagName("day_of_week") .item(0).getTextContent());
           System.out.println("Low : " + eElement .getElementsByTagName("low") .item(0).getTextContent());
           System.out.println("High: " + eElement .getElementsByTagName("high") .item(0).getTextContent());




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

但是显示的输出如下,信息未从我提供的.xml文件中提取:

   Root element :weather
   ----------------------------

   Current Element :forecast_information
   City : 
   Postal_Code : 
   Forecast date : 
   Unit System : 
   Condition : 
   Wind Condition : 
   Day of week : 
   Low : 
   High: 

   Current Element :forecast_information
   City : 
   Postal_Code : 
   Forecast date : 
   Unit System : 
   Condition : 
   Wind Condition : 
   Day of week : 
   Low : 
   High: 
怀疑论者

第一个错误:

System.out.println("City : " + eElement.getAttribute("city"));

您正在请求名为cityforecast_information元素的属性,但该元素没有任何属性。city是一个子元素forecast_information,因此,你应该通过遍历的儿童或者通过使用提取它getElementsByTagName()作为你与其余项目做。

第二个错误:

对于所有其他元素,您正在执行getElementsByTagName,这对于检索元素本身很好。但是,data您要检索项目不是其内容-它是一个属性。

getTextContent()如果项目看起来像这样,则使用将是正确的:

<forecast_date>2015-03-12</forecast_date> 
<unit_system>US</unit_system>

但这不是XML格式化的方式。在XML中,您需要检索属性data因此,您应该像这样替换调用:

System.out.println("Postal_Code : " + eElement.getElementsByTagName("postal_code").item(0).getTextContent());

到:

System.out.println("Postal_Code : " + eElement.getElementsByTagName("postal_code").item(0).getAttribute("data"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Dom解析器不起作用-显示的输出全部为空

来自分类Dev

将String解析为DOM,点击不起作用

来自分类Dev

zend framework 2 setTemplate在主机上不起作用:错误无法呈现模板...解析器无法解析为文件

来自分类Dev

xml解析器不起作用

来自分类Dev

xml解析器不起作用

来自分类Dev

使用PHP Simple HTML DOM解析器解析输出

来自分类Dev

使用PHP Simple HTML DOM解析器解析输出

来自分类Dev

XML DOM解析器:所有元素的空值

来自分类Dev

内容解析器notifyChange()不起作用

来自分类Dev

为什么此JSON解析器不起作用?

来自分类Dev

为什么我的XML解析器不起作用

来自分类Dev

内容解析器notifyChange()不起作用

来自分类Dev

当输出为空时,Excel中的自动筛选失败(当输出为空时,它会全部显示)

来自分类Dev

Angular 8解析器不起作用:没有解析器提供程序

来自分类Dev

解析器全部参数列表

来自分类Dev

解析器全部参数列表

来自分类Dev

USB闪存驱动器不起作用或显示为空磁盘驱动器,磁盘管理报告“无介质”,字节大小为0

来自分类Dev

使用Java DOM解析器标记XML输出-多个子节点值

来自分类Dev

导入全部不起作用

来自分类Dev

PHP简单DOM解析器以刮取方法返回布尔值/空值

来自分类Dev

PHP简单HTML DOM解析器:仅显示一个Div

来自分类Dev

显示所有相同的元素简单HTML DOM解析器

来自分类Dev

简单的HTML DOM解析器-在foreach循环内显示变量的问题

来自分类Dev

了解解析器组合器〜输出

来自分类Dev

express POST req.body 解析器为空

来自分类Dev

即使使用正文解析器也请求正文为空

来自分类Dev

双显示器显示不起作用

来自分类Dev

Hadoop映射器压缩输出不起作用?

来自分类Dev

MySQL列的值为空,但“为空”不起作用

Related 相关文章

  1. 1

    Dom解析器不起作用-显示的输出全部为空

  2. 2

    将String解析为DOM,点击不起作用

  3. 3

    zend framework 2 setTemplate在主机上不起作用:错误无法呈现模板...解析器无法解析为文件

  4. 4

    xml解析器不起作用

  5. 5

    xml解析器不起作用

  6. 6

    使用PHP Simple HTML DOM解析器解析输出

  7. 7

    使用PHP Simple HTML DOM解析器解析输出

  8. 8

    XML DOM解析器:所有元素的空值

  9. 9

    内容解析器notifyChange()不起作用

  10. 10

    为什么此JSON解析器不起作用?

  11. 11

    为什么我的XML解析器不起作用

  12. 12

    内容解析器notifyChange()不起作用

  13. 13

    当输出为空时,Excel中的自动筛选失败(当输出为空时,它会全部显示)

  14. 14

    Angular 8解析器不起作用:没有解析器提供程序

  15. 15

    解析器全部参数列表

  16. 16

    解析器全部参数列表

  17. 17

    USB闪存驱动器不起作用或显示为空磁盘驱动器,磁盘管理报告“无介质”,字节大小为0

  18. 18

    使用Java DOM解析器标记XML输出-多个子节点值

  19. 19

    导入全部不起作用

  20. 20

    PHP简单DOM解析器以刮取方法返回布尔值/空值

  21. 21

    PHP简单HTML DOM解析器:仅显示一个Div

  22. 22

    显示所有相同的元素简单HTML DOM解析器

  23. 23

    简单的HTML DOM解析器-在foreach循环内显示变量的问题

  24. 24

    了解解析器组合器〜输出

  25. 25

    express POST req.body 解析器为空

  26. 26

    即使使用正文解析器也请求正文为空

  27. 27

    双显示器显示不起作用

  28. 28

    Hadoop映射器压缩输出不起作用?

  29. 29

    MySQL列的值为空,但“为空”不起作用

热门标签

归档