- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从事一个项目,该项目需要从包含子项和子项的 XML 文件中读取,我必须打印每年的信息(每个月都有相应的天数)。
这是我的 XML 文件:
<?xml version="1.0"?>
<Forecast>
<year name="2016">
<currentyear>2016</currentyear>
<month name="May">
<currentmonth>May</currentmonth>
<day name="Monday">
<currentday>Monday</currentday>
<date>22</date>
<temperature>29</temperature>
<weather>sunny</weather>
<humidity>30</humidity>
</day>
<day name="Tuesday">
<currentday>Tuesday</currentday>
<date>23</date>
<temperature>31</temperature>
<weather>sunny</weather>
<humidity>40</humidity>
</day>
<day name="Wednesday">
<currentday>Wednesday</currentday>
<date>24</date>
<temperature>24</temperature>
<weather>rainy</weather>
<humidity>60</humidity>
</day>
<day name="Thursday">
<currentday>Thursday</currentday>
<date>25</date>
<temperature>33</temperature>
<weather>sunny</weather>
<humidity>30</humidity>
</day>
</month>
<month name="June">
<currentmonth>June</currentmonth>
<day name="Monday">
<currentday>Monday</currentday>
<date>13</date>
<temperature>34</temperature>
<weather>sunny</weather>
<humidity>30</humidity>
</day>
<day name="Tuesday">
<currentday>Tuesday</currentday>
<date>14</date>
<temperature>37</temperature>
<weather>sunny</weather>
<humidity>25</humidity>
</day>
<day name="Wednesday">
<currentday>Wednesday</currentday>
<date>15</date>
<temperature>36</temperature>
<weather>sunny</weather>
<humidity>20</humidity>
</day>
<day name="Thursday">>
<currentday>Thursday</currentday>
<date>16</date>
<temperature>39</temperature>
<weather>sunny</weather>
<humidity>15</humidity>
</day>
</month>
</year>
我有以下 java 代码:
try
{
DocumentBuilderFactory docBuild = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuild.newDocumentBuilder();
Document doc = docBuilder.parse(new File("D:\\users\\Popa Andrei\\Java Workspace\\YearForecast\\forecast.xml"));
doc.getDocumentElement().normalize();
System.out.println("Root element:"+doc.getDocumentElement().getNodeName());
NodeList listYears = doc.getElementsByTagName("year");
int totalYears = listYears.getLength();
System.out.println("Total number of years:"+totalYears);
NodeList listMonths = doc.getElementsByTagName("month");
int totalMonths = listMonths.getLength();
System.out.println("Total number of months:"+totalMonths);
NodeList listDays = doc.getElementsByTagName("day");
int totalDays = listDays.getLength();
System.out.println("Total number of days:"+totalDays);
for(int i = 0;i<listYears.getLength();i++)
{
Node firstYear= listYears.item(i);
if(firstYear.getNodeType() == Node.ELEMENT_NODE)
{
Element firstYearElement = (Element)firstYear;
System.out.println("Year:"+firstYearElement.getElementsByTagName("currentyear").item(0).getTextContent());
for(int j = 0;j<listMonths.getLength();j++)
{
Node firstMonth = listMonths.item(j);
if(firstMonth.getNodeType() == Node.ELEMENT_NODE)
{
Element firstMonthElement =(Element)firstMonth;
System.out.println("Month:"+firstMonthElement.getElementsByTagName("currentmonth").item(0).getTextContent()+"\n");
for(int k = 0 ;k<listDays.getLength();k++)
{
Node firstDay = listDays.item(k);
if(firstDay.getNodeType() == Node.ELEMENT_NODE)
{
Element firstDayElement = (Element)firstDay;
System.out.println("Day:"+firstDayElement.getElementsByTagName("currentday").item(0).getTextContent());
System.out.println("Date:"+firstDayElement.getElementsByTagName("date").item(0).getTextContent());
System.out.println("Temperature:"+firstDayElement.getElementsByTagName("temperature").item(0).getTextContent()+" degrees");
System.out.println("Weather:"+firstDayElement.getElementsByTagName("weather").item(0).getTextContent());
System.out.println("Humidity:"+firstDayElement.getElementsByTagName("humidity").item(0).getTextContent()+"%");
}
System.out.println("\n");
}
}
}
}
}
}catch (SAXParseException err) {
System.out.println ("** Parsing error" + ", line "
+ err.getLineNumber () + ", uri " + err.getSystemId ());
System.out.println(" " + err.getMessage ());
}catch (SAXException e) {
Exception x = e.getException ();
((x == null) ? e : x).printStackTrace ();
}catch (Throwable t) {
t.printStackTrace ();
}
System.exit (0);
}
输出是这样的:
Root element:Forecast
Total number of years:1
Total number of months:2
Total number of days:8
Year:2016
Month:May
Day:Monday
Date:22
Temperature:29 degrees
Weather:sunny
Humidity:30%
Day:Tuesday
Date:23
Temperature:31 degrees
Weather:sunny
Humidity:40%
Day:Wednesday
Date:24
Temperature:24 degrees
Weather:rainy
Humidity:60%
Day:Thursday
Date:25
Temperature:33 degrees
Weather:sunny
Humidity:30%
Day:Monday
Date:13
Temperature:34 degrees
Weather:sunny
Humidity:30%
Day:Tuesday
Date:14
Temperature:37 degrees
Weather:sunny
Humidity:25%
Day:Wednesday
Date:15
Temperature:36 degrees
Weather:sunny
Humidity:20%
Day:Thursday
Date:16
Temperature:39 degrees
Weather:sunny
Humidity:15%
Month:June
Day:Monday
Date:22
Temperature:29 degrees
Weather:sunny
Humidity:30%
Day:Tuesday
Date:23
Temperature:31 degrees
Weather:sunny
Humidity:40%
Day:Wednesday
Date:24
Temperature:24 degrees
Weather:rainy
Humidity:60%
Day:Thursday
Date:25
Temperature:33 degrees
Weather:sunny
Humidity:30%
Day:Monday
Date:13
Temperature:34 degrees
Weather:sunny
Humidity:30%
Day:Tuesday
Date:14
Temperature:37 degrees
Weather:sunny
Humidity:25%
Day:Wednesday
Date:15
Temperature:36 degrees
Weather:sunny
Humidity:20%
Day:Thursday
Date:16
Temperature:39 degrees
Weather:sunny
Humidity:15%
问题是我的输出应该是这样的:
Root element:Forecast
Total number of years:1
Total number of months:2
Total number of days:8
Year:2016
Month:May
Day:Monday
Date:22
Temperature:29 degrees
Weather:sunny
Humidity:30%
Day:Tuesday
Date:23
Temperature:31 degrees
Weather:sunny
Humidity:40%
Day:Wednesday
Date:24
Temperature:24 degrees
Weather:rainy
Humidity:60%
Day:Thursday
Date:25
Temperature:33 degrees
Weather:sunny
Humidity:30%
Month:June
Day:Monday
Date:13
Temperature:34 degrees
Weather:sunny
Humidity:30%
Day:Tuesday
Date:14
Temperature:37 degrees
Weather:sunny
Humidity:25%
Day:Wednesday
Date:15
Temperature:36 degrees
Weather:sunny
Humidity:20%
Day:Thursday
Date:16
Temperature:39 degrees
Weather:sunny
Humidity:15%
谁能帮我解决这个问题?
最佳答案
这里是一个非常粗略的方法。对于发生变化的年份,您将必须实现它(现在我仅按月汇总。您将必须针对年和月的键进行汇总)。
DocumentBuilderFactory docBuild = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuild.newDocumentBuilder();
Document doc = docBuilder.parse(new File("C:\\DevelopmentTools\\3.CODE\\Weather.xml"));
NodeList monthNodes = doc.getElementsByTagName("month");
// monthNodes.
XPath xPath = XPathFactory.newInstance().newXPath();
for (int i = 0; i < monthNodes.getLength(); i++) {
StringBuilder pathBuilder = new StringBuilder();
pathBuilder.append("/Forecast/year/month[@name=");
pathBuilder.append("'");
Element monthNode = (Element) monthNodes.item(i);
String month = monthNode.getAttribute("name");
pathBuilder.append(month);
pathBuilder.append("']/day");
NodeList monthWiseNodes = (NodeList) xPath.evaluate(pathBuilder.toString(), doc.getDocumentElement(),
XPathConstants.NODESET);
System.out.println("For the month of " + month + " number of days is " + monthWiseNodes.getLength());
}
我得到这个输出:
For the month of May number of days is 4
For the month of June number of days is 4
关于java - 读取包含多个元素的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38610433/
我有一个类似于以下的结构。 class A { string title; List bItem; } class B { int pric
本地流 和 远程流 两者都是“媒体流列表 ”。 本地流 包含“本地媒体流 ” 对象 但是,远程流 包含“媒体流 ” 对象 为什么差别这么大? 当我使用“本地流 “- 这个对我有用: localVide
我正在尝试将 8 列虚拟变量转换为 8 级排名的一列。 我试图用这个公式来做到这一点: =IF(OR(A1="1");"1";IF(OR(B1="1");"2";IF(OR(C1="1");"3";I
我正在使用面向对象编程在 Python 中创建一个有点复杂的棋盘游戏的实现。 我的问题是,许多这些对象应该能够与其他对象交互,即使它们不包含在其中。 例如Game是一个对象,其中包含PointTrac
有没有办法获取与 contains 语句匹配的最深元素? 基本上,如果我有嵌套的 div,我想要最后一个元素而不是父元素: Needle $("div:contains('Needle')")
出于某种原因,我无法在 Google 上找到答案!但是使用 SQL contains 函数我怎么能告诉它从字符串的开头开始,即我正在寻找等同于的全文 喜欢 'some_term%'。 我知道我可以使用
我正在尝试创建一个正则表达式来匹配具有 3 个或更多元音的字符串。 我试过这个: [aeiou]{3,} 但它仅在元音按顺序排列时才有效。有什么建议吗? 例如: 塞缪尔 -> 有效 琼 -> 无效 S
嘿所以我遇到了这样的情况,我从数据库中拉回一个客户,并通过包含的方式包含所有案例研究 return (from c in db.Clients.Include("CaseStudies")
如果关键字是子字符串,我无法弄清楚为什么这个函数不返回结果。 const string = 'cake'; const substring = 'cak'; console.log(string.in
我正在尝试将包含特定文本字符串的任何元素更改为红色。在我的示例中,我可以将子元素变为蓝色,但是我编写“替换我”行的方式有些不正确;红色不会发生变化。我注意到“contains”方法通常写为 :cont
我想问一下我是否可以要求/包含一个语法错误的文件,如果不能,则require/include返回一个值,这样我就知道所需/包含的文件存在语法错误并且不能被要求/包含? file.php语法错误 inc
我想为所有包含youtube链接的链接添加一个rel。 这就是我正在使用的东西-但它没有用。有任何想法吗? $('a [href:contains(“youtube.com”)]')。attr('re
我正在尝试在 Elasticsearch 中查询。除搜索中出现“/”外,此功能均正常运行。查询如下所示 GET styling_rules/product_line_filters/_search {
我正在开发名为eBookRepository的ASP.NET MVC应用程序,其中包含在线图书。 电子书具有自己的标题,作者等。因此,现在我正在尝试实现搜索机制。我必须使用Elasticsearch作
我已阅读Firebase Documentation并且不明白什么是 .contains()。 以下是文档中 Firebase 数据库的示例规则: { "rules": { "rooms"
我的问题是我可以给出条件[ 'BookTitleMaster.id' => $xtitid, ] 如下所示 $bbookinfs = $this->BookStockin->BookIssue->fi
我需要能够使用 | 检查模式在他们中。例如,对于像“dtest|test”这样的字符串,像 d*|*t 这样的表达式应该返回 true。 我不是正则表达式英雄,所以我只是尝试了一些事情,例如: Reg
我想创建一个正则表达式来不匹配某些单词... 我的字符:var test = "é123rr;and;ià456;or;456543" 我的正则表达式:test.match(\((?!and)(?!o
我在 XSLT 中有一个名为 variable_name 的变量,如果相关产品具有名称为 A 或 B 或两者均为 A & 的属性,我将尝试将其设置为 1 B.
您好,我想让接待员和经理能够查看工作类型和费率并随后进行更新。但是技术人员只能查看不能更新。该图是否有效? 我读到扩展用例是由发起基本用例的参与者发起的。我应该如何区分技术人员只能启动基本案例而不能启
我是一名优秀的程序员,十分优秀!