2013-07-31 24 views
0

這裏讀取XML節點空白元素是我的示例代碼如何從Java

<myElement> </myElement> 

我嘗試採取上述節點值幾個空格到Java變量,但它給了我一個空字符串變量。

我怎樣才能讀取包含XML節點的白色空間

+2

你必須張貼一些代碼。我們不知道你是如何正確讀取你的XML到Java。手動解析?正則表達式? Xpath的? JAXB? – f1sh

回答

1

我不是100%肯定,但也許這可以幫助你。

相信你有這樣的

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<root> 
    <myElement> </myElement> 
</root> 

的XML當你沒有告訴你使用的是什麼,我做的SAX的例子。要知道,如果你有一個巨大的XML可以讀取,這並不是最快的方法。

public class Test { 
    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { 
     DefaultHandler myHandler = new MyHandler(); 
     SAXParserFactory factory = SAXParserFactory.newInstance(); 
     SAXParser parser = factory.newSAXParser(); 
     parser.parse(new File("empty.xml"), myHandler); 
    } 
} 

的HandlerClass你的回調:

public class MyHandler extends DefaultHandler { 
    private boolean isEmpty = false; 
    private String fewSpace; 

@Override 
public void endElement(String uri, String localName, String qName) throws SAXException { 
    if (this.isEmpty) { 
     this.fewSpace = " "; 
     System.out.println(qName + this.fewSpace + " :)"); 
     this.isEmpty = false; 
    } 
} 

@Override 
public void characters(char[] buffer, int offset, int length) throws SAXException { 
    String s = new String(buffer, offset, length); 

    if (s.matches("\\s {1,}")) { 
     System.out.println("This Element has empty String"); 
     this.isEmpty = true; 
    } 
} 
}