无法解析 xml 条目

Can't parse xml entry

Xml 的条目如下:

<News:Source>AD HOC News</News:Source>

但是当使用 stax xml 解析器时,它会忽略该行:

    static final String SOURCE = "News:Source";
    XMLInputFactory inputFactory = XMLInputFactory.newInstance();
    // Setup a new eventReader
    InputStream in = read();
    XMLEventReader eventReader = inputFactory.createXMLEventReader(in);
    // read the XML document
        while (eventReader.hasNext()) {
            XMLEvent event = eventReader.nextEvent();
            if (event.isStartElement()) {
                String localPart = event.asStartElement().getName().getLocalPart();
                    switch (localPart) {
                    ...
                        case SOURCE:
                            // System.out.println("nothing happens here");
                            source = getCharacterData(event, eventReader);
                            break;
                    ...

这是什么原因?

在用于标识 XML 元素的代码中使用命名空间前缀 ("News") 通常不是一个好主意。前缀在 XML 文件的某处定义,完全独立于实际的命名空间标识符。

正确的识别必须使用QName。

如果所有元素都来自同一个命名空间,您可以单独使用本地名称 ("Source"),但必须了解 XML 文件的所有信息才能保证。

稍后好吧,最后一个提议是您已经在代码中做的事情。因此,只需使用

static final String SOURCE = "Source";