xml 스 니펫이 주어지면 :
<AddedExtras>
<AddedExtra Code="1234|ABCD" Quantity="1" Supplier="BDA"/>
<AddedExtra Code="5678|EFGH" Quantity="1" Supplier="BDA"/>
<AddedExtra Code="9111|ZXYW" Quantity="1" Supplier="BDA"/>
<AddedExtra Code="9188|ZXYF" Quantity="1" Supplier="BDA"/>
<AddedExtra Code="9199|ZXYG" Quantity="1" Supplier="BDA"/>
</AddedExtras>
그리고 위의 xml에서 구문 분석 된 문서로 읽고 xpath 표현식을 사용하여 'Code'속성을 추출하는 다음 스 니펫 :
public String getNodeValuesFromNodeList(Document doc, String expression){
NodeList nodeList = null;
try {
nodeList = (NodeList) xpath.compile(expression).evaluate(doc, XPathConstants.NODESET);
} catch (XPathExpressionException e) {
e.printStackTrace();
}
return nodeList.toString();
}
반환 된 목록은 문자열 목록이 아닌 객체 (org.apache.xml.dtm.ref.DTMNodeList@58cf8f94)입니다. 다음을 문자열 목록으로 반환하도록 nodeList를 반환하려면 어떻게해야합니까?
Code="1234|ABCD
Code="5678|EFGH
Code="9111|ZXYW
Code="9188|ZXYF
Code="9199|ZXYG
그렇다면 처음 2 개만 반환 할 수 있습니까 (예시)?
XPath 표현식이 속성을 선택하고 속성 값을 원하는 경우 다음과 유사한 루프를 사용할 수 있습니다.
List<String> codes = new ArrayList<>();
for (int i = 0; i < nodeList.getLength(); ++i) {
Attr attr = (Attr)nodeList.item(i);
codes.add(attr.getValue());
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다