Java XML属性

时间:2014-11-13 21:47:56

标签: java xml

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

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>

爪哇:

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;
}

1 个答案:

答案 0 :(得分:1)

据我所知,你不能。我认为它甚至没有意义。属性事件不是字符事件,因此您根本无法成功使用asCharacters()

您打算选择代表感兴趣元素开头的XMLEvent,使用asStartElement()将其视为javax.xml.stream.events.StartElement,并通过以下任一方式检查其属性StartElement.getAttributeByName()StartElement.getAttributes()