小编Vik*_*gal的帖子

为什么我将额外的文本节点作为根节点的子节点?

我想打印根节点的子元素.这是我的XML文件.

<?xml version="1.0"?>
<!-- Comment-->
<company>
   <staff id="1001">
       <firstname>yong</firstname>
       <lastname>mook kim</lastname>
       <nickname>mkyong</nickname>
       <salary>100000</salary>
   </staff>
   <staff id="2001">
       <firstname>low</firstname>
       <lastname>yin fong</lastname>
       <nickname>fong fong</nickname>
       <salary>200000</salary>
   </staff>
</company>
Run Code Online (Sandbox Code Playgroud)

根据我的理解,Root节点是'公司',它的子节点必须是'staff'和'staff'(因为有'staff'节点2次).但是当我试图让他们通过我的java代码时,我得到了5个子节点.3个额外的文本节点将从哪里来?

Java代码:

package com.training.xml;

import java.io.File;


import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;


public class ReadingXML {


public static void main(String[] args) {
    try {

        File file=new File("D:\\TestFile.xml");
        DocumentBuilderFactory     dbFactory=DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
        Document document=dBuilder.parse(file);
        document.getDocumentElement().normalize();
        System.out.println("root element: "+document.getDocumentElement().getNodeName());
        Node rootNode=document.getDocumentElement(); //saving root node in a variable.
        System.out.println("root: "+rootNode.getNodeName());
        NodeList nList=rootNode.getChildNodes(); //to store the …
Run Code Online (Sandbox Code Playgroud)

java xml dom

21
推荐指数
1
解决办法
2万
查看次数

无法连接到gmail的smtp服务器.为什么?

我正在尝试使用连接到gt的smtp服务器

telnet gmail.smtp.com 587
Run Code Online (Sandbox Code Playgroud)

当我在家里尝试时,它会被连接起来.但是,当我从办公室尝试时,它显示错误.可能是什么问题?

这是我连接到smtp.gmail.com的错误:

Could not open connection to the host, on port 587: Connect Failed
Run Code Online (Sandbox Code Playgroud)

gmail smtp telnet

5
推荐指数
1
解决办法
1万
查看次数

Java中何时出现"无法访问的代码"?

当在无限循环之后写入某些语句时,该语句将成为无法访问的代码.例如:

for(;;) 
{
}
Sytem.out.println("Test-1"); //unreachable code
Run Code Online (Sandbox Code Playgroud)

但我在这里面临一些困难.

请看下面的两个代码段:

代码片段1:

for(final int z=4;z<6;)
{
}
System.out.println("Test-2"); //unreachable code
Run Code Online (Sandbox Code Playgroud)

这里,最后一个语句必须是不可达的,因为循环是无限的,输出是预期的.

代码片段2:

final int z=4;
for(;;)
{
    if(z<2)
        break;
}
System.out.println("Test-3");  //not unreachable
Run Code Online (Sandbox Code Playgroud)

从概念上讲,上面代码中的for循环也是无限的,因为z是final,并且if(z<2)仅在编译时确定.if条件永远不会为真且循环永远不会中断.但是,上面代码中的Last语句是无法访问的.

问题:

  1. 为什么会这样?

  2. 任何人都可以告诉我确切的规则,我们可以看到代码是否无法访问.

java unreachable-code

5
推荐指数
1
解决办法
1537
查看次数

如何缩小Java中方法调用的工作?

为什么这会给出编译时错误?2在编译时是恒定的,因此这里应允许缩小,因为2在字节范围内.

public class Test {


 public static void main(String[] args) {

    ForTest test=new ForTest();
    test.sum(1, 2); //compile time error here

}

}
class ForTest
{

public int sum(int a,byte b)
{
    System.out.println("method byte");
    return a+b;
}
}
Run Code Online (Sandbox Code Playgroud)

错误是:ForTest类型中的方法sum(int,byte)不适用于arguements(int,int).

编辑:我认为答案就在这里:http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.3但我没有得到它:(

java narrowing

4
推荐指数
1
解决办法
427
查看次数

从instagram图片网址中提取用户和标题

我想使用Instagram API从照片网址中提取已发布照片和相关标题的用户.

例如:

图片网址为:http://instagram.com/p/rRoE9uskcD/

如何从中提取用户和标题?

instagram

1
推荐指数
1
解决办法
6421
查看次数

标签 统计

java ×3

dom ×1

gmail ×1

instagram ×1

narrowing ×1

smtp ×1

telnet ×1

unreachable-code ×1

xml ×1