1
XML에서 Java 구문 분석으로 작업 중입니다. 나는 이와 비슷한 시나리오를 가지고있다.속성 값을 기준으로 xml을 다른 멤버로 구문 분석
속성 값을 기반으로 XML을 Java로 구문 분석해야합니다.
나는 한 멤버와 다른 멤버의 속성 PERMANENT="N"
와 속성 PERMANENT="Y"
모든 직원 요소를 구문 분석 할 필요가있다.
<EMPLOYEE PERMANENT="Y">
<DETAILS NAME="AA" ID="1" AGE="28" />
<DETAILS NAME="BB" ID="2" AGE="29" />
</EMPLOYEE>
<EMPLOYEE PERMANENT="N">
<DETAILS NAME="CC" ID="3" AGE="28" />
<DETAILS NAME="DD" ID="4" AGE="29" />
</EMPLOYEE>
자바
public class Employee
{
// @XStreamAlias("EMPLOYEE") and attribute PERMANENT="Y"
private Details permanentEmployee;
// @XStreamAlias("EMPLOYEE") and attribute PERMANENT="N"
private Details tempEmployee;
}
나는이 작업을 수행하는 방법에 없습니다 확신합니다.
나를 도와 줄 수 있습니까? 이것은 노드 목록을 반환
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
//...
XPath xPath = XPathFactory.newInstance().newXPath();
String expression = "/documentBody/EMPLOYEE[@PERMANENT="Y"]/DETAILS"
NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
당신이 다음 반복해야합니다
감사합니다. xstreamAlias를 사용하여이를 수행하는 방법을 도와 줄 수 있습니까? – Patan
@Patan XStream은 Java 용 xml 직렬화 라이브러리입니다. XStreamAlias 주석을 사용하여이 작업을 수행 할 수 있는지 의심 스럽습니다.이 주석은 클래스 또는 필드 xml 별칭을 정의하기위한 것입니다. 모든 Employee 요소를 구문 분석하도록 요청합니다 ... XStream 라이브러리를 사용하여 직렬화 된 경우 .fromXML() 메소드를 사용할 수 있어야합니다. XStream을 사용하여 직렬화되지 않은 경우이 라이브러리를 사용하는 지점이 실제로 표시되지 않습니다. 주된 용도는 XML 직렬화입니다. Java는 이미 XPath 쿼리를위한 우수한 API를 제공합니다. – rpg711