현재 저는 (.getSelectedIndex()를 통해) 콤보 상자에서 선택된 '데이터 유형'의 값을 취한 다음 '첫 번째 레코드'를 드릴 다운하여 a 문자열 배열.NodeList가 채워지지 않습니다
콤보 상자에는 동일한 XML 파일이 채워지고 DOM 파서를 사용하여 Java로 코딩됩니다.
XML 코드 조각 :
나는 현재 취득하고 '첫 번째 레코드를'반환을 시도 사용하고 자바 코드는<?xml version="1.0" encoding="UTF-8"?>
<dealershipParsers>
<Parser id="ADPParser2">
<data type="Sales" />
<first record = "DEAL-NO"/>
<data type="Service" />
<first record ="RO"/>
<data type="Email" />
<first record ="CONTROL"/>
</Parser>
:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = factory.newDocumentBuilder();
Document document = docBuilder.parse(fileName);
//Searches all text
document.getDocumentElement().normalize();
//Gets elements from xml
Element elementArray = document.getDocumentElement();
NodeList listResources = elementArray.getElementsByTagName("Parser");
Element elemChild = (Element) listResources.item(item);
NodeList dataChildren = elemChild.getElementsByTagName("data");
Element elemFirst = (Element) dataChildren.item(item);
NodeList firstChildren = elemFirst.getElementsByTagName("first");
int tam = firstChildren.getLength();
String[] vecResources = new String[tam];
for (int i = 0; i < tam; i++)
{
Element elem = (Element) firstChildren.item(0);
vecResources[i] = elem.getAttribute("record"); // change to type
}
//returns an array with all the types of data
return vecResources;
나는 것을 내 문제를 정확하게 관리해야 'dataChildren', 'elemFirst'및 'firstChildren'사이의 전환점에서 'dataChildren'에는 카운트가 있지만 netbeans에서 디버그 할 때 'tam'은 'firstChildren'과 마찬가지로 0과 같습니다.
왜 하나의 노드리스트에서 다른 노드리스트로 값을 전달할 수 없습니까? 내가 뭘 놓치고 있니?
모든 조언을 주시면 감사하겠습니다.
오. 나의. 나는 내가 그것을 놓쳤다라고 생각할 수 없다! 나는 그것을 파악하려고 노력하고있는 1 주일 동안이 어리석은 물건을 꼼짝 않고 바라보고 있었다! 예 물론! 감사합니다. 감사합니다. 그랬어! 필자는 XML 구조를 계층 구조로 수정하는 첫 번째 제안을했습니다. –
@senex_subconscious 환영합니다. 다음 번에 조금 더 일찍 도움을 요청하고 싶을 수도 있습니다. 일주일 동안이 일에 매달릴 필요가 없습니다. :-피 –