2014-11-07 2 views
0
<?xml version="1.0" encoding="UTF-8"?> 
<JDF DescriptiveName="DescriptiveName" ID="n0001" JobID="1101-CCC-0" JobPartID="1" ProjectID=""> 
<Comment Name="Materialnummer">XXXXXXX</Comment> 
<NodeInfo LastEnd="2014-03-12T18:00:00+01:00"> 
<EmployeeRef rRef="EMPCSR"/> 
</NodeInfo> 
<CustomerInfo CustomerID="1740"> 
</CustomerInfo> 
<ResourcePool> 
</ResourcePool> 
<ResourceLinkPool> 
</ResourceLinkPool> 
<JDF Category="FinalImaging" ID="n0002" Status="Waiting" Type="ProcessGroup" Types="XXX"> 
<ResourcePool> 
</ResourcePool> 
<ResourceLinkPool> 
</ResourceLinkPool> 
</JDF> 
<JDF ID="n0002" Status="Waiting" Type="ProcessGroup" Types="PrePressPreparation"> 
<ResourcePool> 
</ResourcePool> 
<ResourceLinkPool> 
</ResourceLinkPool> 
</JDF> 
</JDF> 

Как получить значение корневого элемента. Для этого примера я хочу, чтобы получить DescriptiveName, ID, JobId и ProjectID. Мне удалось прочитать другие значения, но застрял в корневой эмуляции. Пожалуйста посоветуй. EDITEDJava - XML ​​считывает значение корневого элемента

DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); 
       DocumentBuilder builder = builderFactory.newDocumentBuilder(); 
       Document xmlDocument = builder.parse(file); 
       XPath xPath = XPathFactory.newInstance().newXPath(); 
       //System.out.println("*************************"); 
       String expression = "/JDF"; 
       NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET); 
+1

Пожалуйста размещаете код! –

+0

@ KenY-N отправлено. –

+0

Документ xmlDocument = builder.parse (файл); Элемент element = xmlDocument.getDocumentElement(); String descriptiveName = element.getAttribute ("DescriptiveName"); С XML, как и со всеми технологиями, важно правильно получить основы, эта ссылка поможет http://www.w3.org/DOM/ – Ironluca

ответ

0

Образец здесь:

import java.io.File; 

import javax.xml.parsers.DocumentBuilderFactory; 

import org.w3c.dom.Document; 
import org.w3c.dom.Element; 
import org.w3c.dom.NodeList; 

    public class Main { 
     public static void main(String[] argv) throws Exception{ 
     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
     factory.setValidating(true); 

     factory.setExpandEntityReferences(false); 

     Document doc = factory.newDocumentBuilder().parse(new File("filename")); 

     Element root = null; 

     NodeList list = doc.getChildNodes(); 
     for (int i = 0; i < list.getLength(); i++) { 
      if (list.item(i) instanceof Element) { 
      root = (Element) list.item(i); 
      break; 
      } 
     } 
     root = doc.getDocumentElement(); 
     } 
    } 

Вы можете получить атрибуты из root объекта

+0

получить эту ошибку. Предупреждение: проверка была включена, но не был установлен org.xml.sax.ErrorHandler, что, вероятно, не является желательным. Parser будет использовать ошибку ErrorHandler по умолчанию для печати первых 0 ошибок. Чтобы исправить это, позвоните по методу setErrorHandler. –

+0

Проверьте этот ответ: http://stackoverflow.com/a/1866915/4017037 – stacky

+0

@stacky -1, см. Комментарий выше – Ironluca

Смежные вопросы