[英]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元素的代碼中使用名稱空間前綴(“新聞”)通常是一個壞主意。 前綴在XML文件中的某個位置定義,並且完全獨立於實際的名稱空間標識符。
正確的標識必須使用QName。
如果所有元素都來自同一個命名空間,則您可能會只使用本地名稱(“源”)就可以擺脫困境,但是您必須完全了解XML文件才能保證這一點。
后來 ,最后一條建議就是您在代碼中已經在做的事情。 因此,只需使用
static final String SOURCE = "Source";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.