【问题标题】:How to read whitespace element in XML node from java如何从java读取XML节点中的空白元素
【发布时间】:2013-07-31 11:51:17
【问题描述】:

这是我的示例代码

<myElement>  </myElement>

我尝试将上述节点值作为 几个空格 放入 java 变量中,但它给了我一个空字符串变量。

如何将 xml 节点的包含读取为空格

【问题讨论】:

  • 您必须发布一些代码。我们不知道您是如何将 xml 读入 java 的。手动解析?正则表达式? Xpath?贾克斯?

标签: java html xml whitespace readxml


【解决方案1】:

我不是 100% 确定,但也许这对你有帮助。

假设你有一个这样的 XML

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

由于您没有说明您使用的是什么,我在 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;
    }
}
}

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多