다음 특성을 가진 XML 태그가 있습니다. 런타임에 XML을 얻고 태그 이름을 알고 있기 때문에 속성의 수/이름이 제공되지 않습니다. JAXB를 사용하여 모든 속성을 Map<String, String>
으로 가져 오려면 어떻게해야합니까?Jaxb의 요소에 동적 속성 가져 오기
어떻게 다음과 같은 자바 코드에이를 추가 할 수 있습니다
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "script ")
@XmlAccessorType(javax.xml.bind.annotation.XmlAccessType.FIELD)
public class SearchScriptElement
{
@XmlAttribute(name = "script")
private String script = "";
public String getScript()
{
return name;
}
public void setScript(String name)
{
this.name = name;
}
}
XML 예제 : 나는 런타임에 알려지지 않은 많은 속성을 가질 수있다 :
<ScriptList>
<script name="xxx" value="sss" id=100 >
<script>
<script name="xxx" value="sss" id=100 alias="sss">
<script>
</ScriptList>
XML 예제를 게시하십시오. 이것은 정확하게 당신의 질문을 이해하는 데 도움이됩니다. – AlexR
XML이 주 스레드에 추가되었습니다. – user1205079
그 질문은 이미 여러 번 요청되었습니다. XML 구조가 다양하다면 유일한 해결책은'@XmlAnyElement'입니다. [JAXB 요소의 모든 내용 가져 오기] (http://stackoverflow.com/questions/7736678), [JAXB - XML 문자열 속성을 사용하는 마샬링 객체] (http://stackoverflow.com/questions/1958645)를 참조하십시오. –