2014-11-13 69 views
0

最近我开始更多地使用XML,现在我陷入了一个奇怪的问题,我无法找到任何解决方案。你如何阅读来自角色事件的属性?我将向您展示XML代码和下面的Java代码片段。Java XML属性

XML:

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <entity id="Player"> 
     <state>MainMenu</state> 
     <attr id="health">10</attr> 
     <attr id="inventory">axe</attr> 
     <controller>0</controller> 
    </entity> 
</config> 

的Java:

if (event.asStartElement().getName().getLocalPart().equals("attr")) 
{ 
    event = eventReader.nextEvent(); 

    System.out.println("Attr: " + event.asCharacters().toString()); 
    System.out.println(); 

    // Iterator<Attribute> attributes = event.asStartElement().getAttributes(); 

    /*while (attributes.hasNext()) 
    { 
     Attribute attribute = attributes.next(); 
     if (attribute.getName().toString().equals("id")) 
     { 
      e.addAttribute(attribute.getValue(), event.asCharacters().getData()); 
     } 
    }*/ 

    continue; 
} 
+0

看起来像http://stackoverflow.com/q/7435674/217324的副本? –

回答

1

据我所知,你不能。我不认为这是有道理的。属性事件不是的一个字符事件,因此您根本无法成功使用asCharacters()

你是指通过两种StartElement.getAttributeByName()StartElement.getAttributes()挑选出代表感兴趣的元素开始的XMLEvent,用asStartElement()得到它的视图作为javax.xml.stream.events.StartElement,并检查其属性。