2015-02-23 2 views
0

Как преобразовать теги ниже в Java, я подумал использовать XTreams Framework.Как преобразовать теги в Java

Помогите мне! Я вижу в поиске Google.

Это

<?xml version="1.0" encoding="ISO-8859-1"?> 
<fastbranch-xe-request project="Tech" transaction-id="massiveSelectBranchList_By_Institution_Facade" transaction-version="1.0"> 
    <entity name="glb.credential"> 
     <attribute name="channelId">8</attribute> 
     <attribute name="originBranchId">0</attribute> 
     <attribute name="dependencyId">1000</attribute> 
    </entity> 
    <entity id="Institution" name="in.institution"> 
     <attribute name="institutionId">1111</attribute> 
    </entity> </fastbranch-xe-request> 

Для этого

<?xml version="1.0" encoding="ISO-8859-1"?> 
<massiveSelectBranchList_By_Institution_Facade> 
    <credential> 
     <channelId>8</channelId> 
     <originBranchId>0</originBranchId> 
     <dependencyId>1000</dependencyId> 
    </credential> 
    <institution> 
     <institutionId>1111</institutionId> 
    </institution> 
</massiveSelectBranchList_By_Institution_Facade> 

ответ

1

Я предложение второго Райнекя использования DOM для преобразования первоначального запроса. Вот вам начало при разборе первоначального запроса:

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
Document doc = dBuilder.parse("xml"); 

// optional, but recommended 
// read this - 
// http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work 
doc.getDocumentElement().normalize(); 

// System.out.println("Root element :" + 
// doc.getDocumentElement().getNodeName()); 

// This breaks the document apart by the specified tag 
NodeList nList = doc.getElementsByTagName("fastbranch-xe-request"); 

// For each instance of the "fastbranch-xe-request" tag... 
for (int pos = 0; pos < nList.getLength(); pos++) { 
    Node nNode = nList.item(pos); 

    if (nNode.getNodeType() == Node.ELEMENT_NODE) { 

     Element eElement = (Element) nNode; 

     // This gets you: "massiveSelectBranchList_By_Institution_Facade" 
     String transactionID = eElement.getAttribute("transaction-id"); 

     // This gets you: "glb.credential" 
     String entityName = eElement.getElementsByTagName("entity").item(0). 
       getAttributes().getNamedItem("name").toString(); 

     // Continue this until you've pulled the tag names from each 
     // "attribute" tag. Once you've pulled all the names (and parsed 
     // the values as well), you can use DOM to construct the second 
     // XML request. 
    } 
} 
+0

благодарим за ваш ответ !!! – WhoAre

+0

Рад помочь! Дайте мне знать, если вам нужна помощь в анализе значений или написании нового XML после того, как вы проанализировали информацию; Я только что закончил массивный проект, который делает именно то, что вы описываете. – roflplanes

0

Я не знаю о XTreams Framework. В Java традиционно SAX или DOM выбирается для синтаксического анализа XML.

быстрый пример: http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/

или хороший учебник: http://howtodoinjava.com/2014/07/31/java-xml-dom-parser-example-tutorial/

Просто, чтобы поставить вас в правильном направлении. Если у вас возникли трудности с применением учебника, покажите, что вы получили до сих пор, и я рад помочь.

Если вы НЕ привязаны к java, вы можете использовать XSLT-instad java. особенно для таких задач, и короче и проще.

Надежда Я мог бы помочь Рейнеке

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