2013-07-15 3 views
0

у меня есть XML, как показано ниже, и я использую XStream для разбора Этот XMLне прочитать значение элемента в XML с помощью XStream

<Annotation name="uniqueMembers">true</Annotation> 

и класс для аннотации:

@XStreamAlias("Annotation") 
public class Annotation { 
@XStreamAsAttribute 
private String name; 

private String value; 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public String getValue() { 
    return value; 
} 

public void setValue(String value) { 
    this.value = value; 
} 
} 

мне нужно значение имеет «истинное» этот тег, но когда я называю

xStream.fromXML("myXml.xml"); 

он имеет нулевое значение почему? как я могу получить «истину» этого тега?

EDIT: часть MyXml.xml

<Dimension name="Branch" > 
    <Hierarchy name="xxx" primaryKey="" hasAll="true" allMemberName="All" > 
     <Table schema="vvv" name="ccc" /> 

     <Level name="State" captionColumn="STATE_NAME" uniqueMembers="true" type="Integer" /> 
     <Level name="City" captionColumn="CITY_NAME" uniqueMembers="true" type="Integer"> 
      <Annotations> 
       <Annotation name="uniqueMembers">true</Annotation> 
      </Annotations> 
     </Level> 
     <Level name="Branch" captionColumn="BRANCH_NAME" uniqueMembers="true" type="Integer" > 
      <Annotations> 
       <Annotation name="uniqueMembers">true</Annotation> 
      </Annotations> 
     </Level> 
    </Hierarchy> 
</Dimension> 
+0

Можете ли вы вставить здесь свой myXml.xml? – rahulserver

+0

его большой и есть много объектов, но Allright я буду делать – sami

+0

я нашел ответ, который работает для меня слишком sami

ответ

0

Как написано на данный момент класс вы показали там ожидает что-то вроде

<Annotation name="something"> 
    <value>the value</value> 
</Annotation> 

Чтобы избавиться от элемента <value> и использоватьСодержаниеэлемента, вам нужно использовать ToAttributedValueConverter, this blog post имеет детали, но в основном вам нужно добавить

@XStreamConverter(value=ToAttributedValueConverter.class, strings={"value"}) 

как аннотацию класса уровня на вашем Annotation классе.

+0

да ты прав, но он не нужен тег ... он работает без него – sami

0

Попробуйте XML фрагмент кода:

<Annotation> 
    < uniqueMembers>true< /uniqueMembers> 
</Annotation> 
+0

изменить теги – sami