2013-02-08 67 views
0

提取從XML特定的標記和他們的價值觀大家好我是一個新的蜜蜂到Java 需要從XML中提取標籤和值需要使用Java

代碼:

Document doc = loadXml("data.xml"); 
NodeList nodeList = doc.getElementsByTagName("CreateResponse"); 
for (int i = 0; i < nodeList.getLength(); i++) { 
    Node node = nodeList.item(i); 
    if (node.getNodeType() == Node.ELEMENT_NODE) { 
     Element element = (Element) node; 
     NodeList ROWList = element.getElementsByTagName("Row"); 
     Element weekElement = (Element) RowList.item(0); 
     NodeList textElementList = weekElement.getChildNodes(); 
     System.out.println("Row:"+((Node)textElementList.item(0)).getNodeValue().trim()); 
} 

以下我輸入

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
       xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <soap:Body> 
    <CreateResponse xmlns="http://jerseytelecom.com/"> 
    <CreateResult> 
    <ISD_XMLGateway> 
     <Entity>NGN_LPI</Entity> 
     <Params> 
     <Param Name="ResponseCode" Value="0" /> 
     <Param Name="ResponseText" Value="OK" /> 
     <Param Name="Response" Value="NGN_LPI_Response"> 
     <NGN_LPI> 
     <Response> 
     <Table> 
     <Row> 
    <RouteRecordID>xxxxx</RouteRecordID> 
    <LineTypeID>xxxxxx</LineTypeID> 
    <RouteNodeElementID>xxxxxxx</RouteNodeElementID> 
    <RouteNodeElementPosition>xx</RouteNodeElementPosition> 
    <RouteNodeElementBlock /> 
    <RouteNodeID>xxxxxx</RouteNodeID> 
    <RouteNodeElementTypeCode>xxx</RouteNodeElementTypeCode> 
    <Circuit>xxxxxx</Circuit> 
    <Suffix>x</Suffix> 
    <SortOrder>x</SortOrder> 
    <RouteNodeElementTypeID>x</RouteNodeElementTypeID> 
    <RouteOrder>x</RouteOrder> 
    <NodeID>xxxxxxxxxxx xxx x</NodeID> 
    <ParentNodeTypeID>x</ParentNodeTypeID> 
    <StatusID>x</StatusID> 
    <RouteStatusID>x</RouteStatusID> 
    <ProcessorID /> 
    <ExchangeID>x</ExchangeID> 
    <SchemeID /> 
    <SchemeNumber /> 
    <RouteConditionID>x</RouteConditionID> 
    <Spare>xxxxx</Spare> 
    <DesignationID>x</DesignationID> 
    <Organisation /> 
    <AddressLine1>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</AddressLine1> 
    <AddressLine2>xxxxxxxxxxxxx</AddressLine2> 
    <AddressLine3>xxxxxxxxxxxx</AddressLine3> 
    <AddressLine4>xxxxxxxx</AddressLine4> 
    <AddressLine5>xxxxxx</AddressLine5> 
    <PostCode>xxxxxxx</PostCode> 
    <AddressID>xxxxxx</AddressID> 
    <CustomerID>xxxx</CustomerID> 
    <CustomerOrganisation /> 
    <Title>x</Title> 
    <Forename /> 
    <Surname /> 
    <CircuitID>xxxxxx</CircuitID> 
    <CableID /> 
    <CableIDIn>x</CableIDIn> 
    <DASS>xxxxx</DASS> 
    <RouteTypeID>x</RouteTypeID> 
    <ChildNodeID>xxxxxxx</ChildNodeID> 
    <ChildExchangeID>x</ChildExchangeID> 
    <ChildRouteNodeElementTypeID>x</ChildRouteNodeElementTypeID> 
    <ChildNodeTypeID>xx</ChildNodeTypeID> 
    <CAMIVPositionID>xxxxxx</CAMIVPositionID> 
    <MDFSuiteID>x</MDFSuiteID> 
    <MDFModuleID>x</MDFModuleID> 
    <ModuleNumber>x</ModuleNumber> 
    <Shelf>x</Shelf> 
    <Slot>x</Slot> 
    <Position>xx</Position> 
    <SuiteName /> 
    <TiePairID>x</TiePairID> 
    <LCT>x</LCT> 
    <ConnectionStatusID>x</ConnectionStatusID> 
    <CeaseDate>dd/mm/yyyy hh:mi:ss</CeaseDate> 
    <FaultTypeID>x</FaultTypeID> 
    <CAMIVPositionIDOut>x</CAMIVPositionIDOut> 
    <MDFSuiteIDOut /> 
    <MDFModuleIDOut /> 
    <ModuleNumberOut /> 
    <ShelfOut /> 
    <SlotOut /> 
    <PositionOut /> 
    <SuiteNameOut /> 
    <CableNodeIDOut /> 
    <LoopResistanceOut /> 
    <DBLossOut /> 
    <PairCountOut /> 
    <FaultyPairCountOut /> 
    <CurrentPairUsageOut /> 
    <CableNodeIDIn /> 
    <LoopResistanceIn /> 
    <DBLossIn /> 
    <PairCountIn /> 
    <FaultyPairCountIn /> 
    <CurrentPairUsageIn /> 
    <HouseNumber /> 
    <WorkflowPending>xxxxx</WorkflowPending> 
    <OrderNumber>xxxxxxx</OrderNumber> 
    <EquipmentTypeID>xxxx</EquipmentTypeID> 
    <StrowgerVertIn>x</StrowgerVertIn> 
    <StrowgerVertOut /> 
    <JobListID>x</JobListID> 
    <ShortCircuit>xxxxxx</ShortCircuit> 
    <CablePair>x</CablePair> 
    <FibreModule>x</FibreModule> 
    <FibreShelf>x</FibreShelf> 
    <SchemeStatusID /> 
    <ABSDSB>xx</ABSDSB> 
    <RequiredDate>dd/mm/yyyy hh:mi:ss</RequiredDate> 
    <ParentExchangeID>x</ParentExchangeID> 
    <ElementExchangeID>x</ElementExchangeID> 
    </Row> 
    <Row> 
    <RouteRecordID>xxxxx</RouteRecordID> 
    <LineTypeID>xxxxxx</LineTypeID> 
    <RouteNodeElementID>xxxxxxx</RouteNodeElementID> 
    <RouteNodeElementPosition>xxx</RouteNodeElementPosition> 
    <RouteNodeElementBlock>x</RouteNodeElementBlock> 
    <RouteNodeID>xxxxxx</RouteNodeID> 
    <RouteNodeElementTypeCode>xxx</RouteNodeElementTypeCode> 
    <Circuit>xxxxxx</Circuit> 
    <Suffix>x</Suffix> 
    <SortOrder>x</SortOrder> 
    <RouteNodeElementTypeID>x</RouteNodeElementTypeID> 
    <RouteOrder>x</RouteOrder> 
    <NodeID>xxxxxxx</NodeID> 
    <ParentNodeTypeID>x</ParentNodeTypeID> 
    <StatusID>x</StatusID> 
    <RouteStatusID>x</RouteStatusID> 
    <ProcessorID /> 
    <ExchangeID>x</ExchangeID> 
    <SchemeID /> 
    <SchemeNumber /> 
    <RouteConditionID>x</RouteConditionID> 
    <Spare>xxxxx</Spare> 
    <DesignationID>x</DesignationID> 
    <Organisation /> 
    <AddressLine1>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</AddressLine1> 
    <AddressLine2>xxxxxxxxxxxxxxxxx</AddressLine2> 
    <AddressLine3>xxxxxxxxxxxxxxxx</AddressLine3> 
    <AddressLine4>xxxxxxxxxx</AddressLine4> 
    <AddressLine5>xxxxxx</AddressLine5> 
    <PostCode>xxxxxxx</PostCode> 
    <AddressID>xxxxxx</AddressID> 
    <CustomerID>xxxx</CustomerID> 
    <CustomerOrganisation /> 
    <Title>x</Title> 
    <Forename /> 
    <Surname /> 
    <CircuitID>xxxxxx</CircuitID> 
    <CableID>xxxxxx</CableID> 
    <CableIDIn>x</CableIDIn> 
    <DASS>xxxxx</DASS> 
    <RouteTypeID>x</RouteTypeID> 
    <ChildNodeID /> 
    <ChildExchangeID>x</ChildExchangeID> 
    <ChildRouteNodeElementTypeID>x</ChildRouteNodeElementTypeID> 
    <ChildNodeTypeID>x</ChildNodeTypeID> 
    <CAMIVPositionID>x</CAMIVPositionID> 
    <MDFSuiteID /> 
    <MDFModuleID /> 
    <ModuleNumber /> 
    <Shelf /> 
    <Slot /> 
    <Position /> 
    <SuiteName /> 
    <TiePairID>x</TiePairID> 
    <LCT>x</LCT> 
    <ConnectionStatusID>x</ConnectionStatusID> 
    <CeaseDate>dd/mm/yyyy hh:mi:ss</CeaseDate> 
    <FaultTypeID>x</FaultTypeID> 
    <CAMIVPositionIDOut>x</CAMIVPositionIDOut> 
    <MDFSuiteIDOut /> 
    <MDFModuleIDOut /> 
    <ModuleNumberOut /> 
    <ShelfOut /> 
    <SlotOut /> 
    <PositionOut /> 
    <SuiteNameOut /> 
    <CableNodeIDOut>xxxxx</CableNodeIDOut> 
    <LoopResistanceOut>xxxxxxxxxxxxxxx</LoopResistanceOut> 
    <DBLossOut>xxxxxxxxxxxxxxxxxxxx</DBLossOut> 
    <PairCountOut>xxx</PairCountOut> 
    <FaultyPairCountOut>x</FaultyPairCountOut> 
    <CurrentPairUsageOut>xxx</CurrentPairUsageOut> 
    <CableNodeIDIn /> 
    <LoopResistanceIn /> 
    <DBLossIn /> 
    <PairCountIn /> 
    <FaultyPairCountIn /> 
    <CurrentPairUsageIn /> 
    <HouseNumber /> 
    <WorkflowPending>xxxxx</WorkflowPending> 
    <OrderNumber>xxxxxxx</OrderNumber> 
    <EquipmentTypeID>x</EquipmentTypeID> 
    <StrowgerVertIn /> 
    <StrowgerVertOut /> 
    <JobListID>x</JobListID> 
    <ShortCircuit>xxxxxx</ShortCircuit> 
    <CablePair>x</CablePair> 
    <FibreModule>x</FibreModule> 
    <FibreShelf>x</FibreShelf> 
    <SchemeStatusID /> 
    <ABSDSB>x</ABSDSB> 
    <RequiredDate>dd/mm/yyyy hh:mi:ss</RequiredDate> 
    <ParentExchangeID>x</ParentExchangeID> 
    <ElementExchangeID>x</ElementExchangeID> 
    </Row> 
    <Row> 
    <RouteRecordID>xxxxx</RouteRecordID> 
    <LineTypeID>xxxxxx</LineTypeID> 
    <RouteNodeElementID>xxxxxxx</RouteNodeElementID> 
    <RouteNodeElementPosition>xxx</RouteNodeElementPosition> 
    <RouteNodeElementBlock>x</RouteNodeElementBlock> 
    <RouteNodeID>xxxxxx</RouteNodeID> 
    <RouteNodeElementTypeCode>xxxxx</RouteNodeElementTypeCode> 
    <Circuit>xxxxxx</Circuit> 
    <Suffix>x</Suffix> 
    <SortOrder>x</SortOrder> 
    <RouteNodeElementTypeID>xx</RouteNodeElementTypeID> 
    <RouteOrder>x</RouteOrder> 
    <NodeID>xxxxxxxx</NodeID> 
    <ParentNodeTypeID>xx</ParentNodeTypeID> 
    <StatusID>x</StatusID> 
    <RouteStatusID>x</RouteStatusID> 
    <ProcessorID /> 
    <ExchangeID>x</ExchangeID> 
    <SchemeID /> 
    <SchemeNumber /> 
    <RouteConditionID>x</RouteConditionID> 
    <Spare>xxxxx</Spare> 
    <DesignationID>x</DesignationID> 
    <Organisation /> 
    <AddressLine1>xxxxxxxxxxxxxxxxxxxxxxxxxxxx</AddressLine1> 
    <AddressLine2>xxxxxxxxxxxxxxxx</AddressLine2> 
    <AddressLine3>xxxxxxxxxxxxxxx</AddressLine3> 
    <AddressLine4>xxxxxxxxxx</AddressLine4> 
    <AddressLine5>xxxxxx</AddressLine5> 
    <PostCode>xxxxxxx</PostCode> 
    <AddressID>xxxxxx</AddressID> 
    <CustomerID>xxxx</CustomerID> 
    <CustomerOrganisation /> 
    <Title>x</Title> 
    <Forename /> 
    <Surname /> 
    <CircuitID>xxxxxx</CircuitID> 
    <CableID>xxxxxx</CableID> 
    <CableIDIn>xxxxxx</CableIDIn> 
    <DASS>xxxxx</DASS> 
    <RouteTypeID>x</RouteTypeID> 
    <ChildNodeID>xxxxxxx</ChildNodeID> 
    <ChildExchangeID>x</ChildExchangeID> 
    <ChildRouteNodeElementTypeID>x</ChildRouteNodeElementTypeID> 
    <ChildNodeTypeID>x</ChildNodeTypeID> 
    <CAMIVPositionID>x</CAMIVPositionID> 
    <MDFSuiteID /> 
    <MDFModuleID /> 
    <ModuleNumber /> 
    <Shelf /> 
    <Slot /> 
    <Position /> 
    <SuiteName /> 
    <TiePairID>x</TiePairID> 
    <LCT>x</LCT> 
    <ConnectionStatusID>x</ConnectionStatusID> 
    <CeaseDate>dd/mm/yyyy hh:mi:ss</CeaseDate> 
    <FaultTypeID>x</FaultTypeID> 
    <CAMIVPositionIDOut>x</CAMIVPositionIDOut> 
    <MDFSuiteIDOut /> 
    <MDFModuleIDOut /> 
    <ModuleNumberOut /> 
    <ShelfOut /> 
    <SlotOut /> 
    <PositionOut /> 
    <SuiteNameOut /> 
    <CableNodeIDOut>xxxxx</CableNodeIDOut> 
    <LoopResistanceOut>xxxxxxxxxxxxxxxxxx</LoopResistanceOut> 
    <DBLossOut>xxxxxxxxxxxxxxxxxxxxx</DBLossOut> 
    <PairCountOut>xxx</PairCountOut> 
    <FaultyPairCountOut>x</FaultyPairCountOut> 
    <CurrentPairUsageOut>xxx</CurrentPairUsageOut> 
    <CableNodeIDIn>xxxxx</CableNodeIDIn> 
    <LoopResistanceIn>xxxxxxxxxxxxxxxxxxx</LoopResistanceIn> 
    <DBLossIn>xxxxxxxxxxxxxxxxxxxxx</DBLossIn> 
    <PairCountIn>xxx</PairCountIn> 
    <FaultyPairCountIn>x</FaultyPairCountIn> 
    <CurrentPairUsageIn>xxx</CurrentPairUsageIn> 
    <HouseNumber /> 
    <WorkflowPending>xxxxx</WorkflowPending> 
    <OrderNumber>xxxxxxx</OrderNumber> 
    <EquipmentTypeID>x</EquipmentTypeID> 
    <StrowgerVertIn /> 
    <StrowgerVertOut /> 
    <JobListID>x</JobListID> 
    <ShortCircuit>xxxxxx</ShortCircuit> 
    <CablePair>x</CablePair> 
    <FibreModule>x</FibreModule> 
    <FibreShelf>x</FibreShelf> 
    <SchemeStatusID /> 
    <ABSDSB>x</ABSDSB> 
    <RequiredDate>dd/mm/yyyy hh:mi:ss</RequiredDate> 
    <ParentExchangeID>x</ParentExchangeID> 
    <ElementExchangeID>x</ElementExchangeID> 
    </Row> 
    <Row> 
    <RouteRecordID>xxxxx</RouteRecordID> 
    <LineTypeID>xxxxx</LineTypeID> 
    <RouteNodeElementID>xxxxxxx</RouteNodeElementID> 
    <RouteNodeElementPosition>xxx</RouteNodeElementPosition> 
    <RouteNodeElementBlock /> 
    <RouteNodeID>xxxxxx</RouteNodeID> 
    <RouteNodeElementTypeCode>xx</RouteNodeElementTypeCode> 
    <Circuit>xxxxxx</Circuit> 
    <Suffix>x</Suffix> 
    <SortOrder>x</SortOrder> 
    <RouteNodeElementTypeID>x</RouteNodeElementTypeID> 
    <RouteOrder>x</RouteOrder> 
    <NodeID>xxxx</NodeID> 
    <ParentNodeTypeID>x</ParentNodeTypeID> 
    <StatusID>x</StatusID> 
    <RouteStatusID>x</RouteStatusID> 
    <ProcessorID /> 
    <ExchangeID>x</ExchangeID> 
    <SchemeID /> 
    <SchemeNumber /> 
    <RouteConditionID>x</RouteConditionID> 
    <Spare>xxxxx</Spare> 
    <DesignationID>x</DesignationID> 
    <Organisation /> 
    <AddressLine1>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</AddressLine1> 
    <AddressLine2>xxxxxxxxxxxxxxxxx</AddressLine2> 
    <AddressLine3>xxxxxxxxxxxxxxx</AddressLine3> 
    <AddressLine4>xxxxxx</AddressLine4> 
    <AddressLine5>xxxxxx</AddressLine5> 
    <PostCode>xxxxxxx</PostCode> 
    <AddressID>xxxxxx</AddressID> 
    <CustomerID>xxxx</CustomerID> 
    <CustomerOrganisation /> 
    <Title>x</Title> 
    <Forename /> 
    <Surname /> 
    <CircuitID>xxxxxx</CircuitID> 
    <CableID /> 
    <CableIDIn>xxxxxx</CableIDIn> 
    <DASS>xxxxx</DASS> 
    <RouteTypeID>x</RouteTypeID> 
    <ChildNodeID /> 
    <ChildExchangeID>x</ChildExchangeID> 
    <ChildRouteNodeElementTypeID>x</ChildRouteNodeElementTypeID> 
    <ChildNodeTypeID>x</ChildNodeTypeID> 
    <CAMIVPositionID>x</CAMIVPositionID> 
    <MDFSuiteID /> 
    <MDFModuleID /> 
    <ModuleNumber /> 
    <Shelf /> 
    <Slot /> 
    <Position /> 
    <SuiteName /> 
    <TiePairID>x</TiePairID> 
    <LCT>x</LCT> 
    <ConnectionStatusID>x</ConnectionStatusID> 
    <CeaseDate>dd/mm/yyyy hh:mi:ss</CeaseDate> 
    <FaultTypeID>x</FaultTypeID> 
    <CAMIVPositionIDOut>x</CAMIVPositionIDOut> 
    <MDFSuiteIDOut /> 
    <MDFModuleIDOut /> 
    <ModuleNumberOut /> 
    <ShelfOut /> 
    <SlotOut /> 
    <PositionOut /> 
    <SuiteNameOut /> 
    <CableNodeIDOut /> 
    <LoopResistanceOut /> 
    <DBLossOut /> 
    <PairCountOut /> 
    <FaultyPairCountOut /> 
    <CurrentPairUsageOut /> 
    <CableNodeIDIn>xxxxx</CableNodeIDIn> 
    <LoopResistanceIn>xxxxxxxxxxxxxxxxxxxx</LoopResistanceIn> 
    <DBLossIn>xxxxxxxxxxxxxxxxx</DBLossIn> 
    <PairCountIn>xxx</PairCountIn> 
    <FaultyPairCountIn>x</FaultyPairCountIn> 
    <CurrentPairUsageIn>xxx</CurrentPairUsageIn> 
    <HouseNumber /> 
    <WorkflowPending>xxxxx</WorkflowPending> 
    <OrderNumber>xxxxxxx</OrderNumber> 
    <EquipmentTypeID>x</EquipmentTypeID> 
    <StrowgerVertIn /> 
    <StrowgerVertOut /> 
    <JobListID>x</JobListID> 
    <ShortCircuit>xxxxxx</ShortCircuit> 
    <CablePair>x</CablePair> 
    <FibreModule>x</FibreModule> 
    <FibreShelf>x</FibreShelf> 
    <SchemeStatusID /> 
    <ABSDSB>x</ABSDSB> 
    <RequiredDate>dd/mm/yyyy hh:mi:ss</RequiredDate> 
    <ParentExchangeID>x</ParentExchangeID> 
    <ElementExchangeID>x</ElementExchangeID> 
    </Row> 
    </Table> 
     </Response> 
     <ResponseCode>0</ResponseCode> 
     <ResponseText>Ok</ResponseText> 
    </NGN_LPI> 
    </Param> 
    </Params> 
    </ISD_XMLGateway> 
    </CreateResult> 
     </CreateResponse> 
     </soap:Body> 
     </soap:Envelope>. 

我需要extrcat只有所需的標籤的XML和值例如

   <Slot>XXXXX</Slot><Shelf>yyyy</Shelf> 

我試圖用由frnds我的一個建議代碼以下peice的,但它並沒有爲我的目的

+1

請不要張貼如此巨大的XML的金額。您應該能夠創建一個更小的非工作代碼和XML樣本。 – 2013-02-08 16:54:17

+0

你試圖改變什麼,哪部分不工作?你有沒有考慮過使用XML pull API?對於大型文檔,拉式處理非常好,您應該嘗試一下。 – 2013-02-08 17:48:47

回答

1

嘗試使用XPath:

XPathExpression expr = xpath.compile("//*[self::Slot or self::Shelf]"); 
NodeList nodeList = (NodeList) expr.evaluate(doc, XPathConstants.NODESET); 
for (int i=0; i<nodeList.getLength(); i++) { 
    Node node = nodeList.item(i); 
    node.getLocalName(); // The element name, e.g. "Slot" 
    node.getTextContent(); // The element text content, e.g. "XXXXX" 
    // ... 
}