Я не знаю, как точно задать свои вопросы. Я считаю, что два вопроса могут помочь:Проанализируйте XML в JAVA, вытащите конкретную часть данных
Я играл с файлами синтаксического анализа - в частности, xml.
Я нашел много учебников и множество приемов техники.
В большинстве учебных пособий есть простой XML-файл, который начинается с имен, телефонных номеров и т. Д.
Мои 2 вопроса:
1) как я могу извлечь/отобразить только данные между специфическим. Например, если я просто хочу, чтобы отобразить <FirstNames>
, как я могу сделать (в Java) следующее:
loop
If <tag> = “FirstName” then name_variable = data in between tags);
or
If <tag> = “FirstName” then System.out.printf(“ the first name is %s\n”,name_variable);
end loop
2) Предположим, что я ищу только второй экземпляр First Name, в некоторых учебники/примеры, которые я видели, как отображать все данные из цикла. Я попытался установить данные равными «массивной» строке, а затем отобразить данные вне цикла, но вычеркнул. В нижней части, как вы храните индексированный (массив) фрагмент проанализированных XML-данных для использования или передачи в более позднем коде?
<company>
<Name>My Company</Name>
<Executive type = "CEO">
<LastName>Smith</LastName>
<FirstName>Jim</FirstName>
<street>123 Main Street</street>
<city>Mytown</city>
<state>TN</state>
<zip>11234</zip>
</Executive>
<Executive type = "OEC">
<LastName>Jones</LastName>
<FirstName>John</FirstName>
<street>456 Main Street</street>
<city>Gotham</city>
<state>TN</state>
<zip>11234</zip>
</Executive>
</company>
Вот код, я кусочки, я получаю некоторые данные из моего XML, но я не понял, как хранить в индексируемой части проанализированных данных.
package dom_parsing_in_java;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.NamedNodeMap;
//import com.sun.org.apache.xerces.internal.parsers.DOMParser;
public class DOM_Parsing_In_JAVA {
public static void main(String[] args) {
// TODO code application logic here
String file = "test2.xml";
if(args.length >0){
file = args[0];
}// end If
try{
//DOMParser parser= new DOMParser();
DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File(file));
//Document document = parser.getDocument();
Element root = document.getDocumentElement();
System.out.println(root.getTagName());
NodeList node_list = root.getElementsByTagName("Executive");
//Node comp = getNode("Company",root);
int i;
for(i = 0; i<node_list.getLength();i++){
Element department = (Element)node_list.item(i);
System.out.println(department.getTagName());
System.out.println("name "+document.getElementsByTagName("Name").item(0).getTextContent());
System.out.println("name "+document.getElementsByTagName("FirstName").item(i).getTextContent());
System.out.printf(" Lastname: %s%n ", document.getElementsByTagName("LastName").item(i));
System.out.printf(" Lastname: %s%n ", department.getAttribute("LastName"));
System.out.printf(" FirstName: %s%n",department.getAttribute("FirstName"));
//System.out.printf(" elements by Tag %s%n",department.getElementsByTagName("testTag"));
//System.out.printf(" staff: %s%n",countStaff(department));
}
}
catch(Exception e){
e.printStackTrace();
}//end catch
}
}
Я провел прошлую ночь (слишком поздно прошлой ночью), разочаровавшись в попытках работать с примерами StAX и немного почитать. Пристойный уровень разочарования сидел прошлой ночью. Я неуклонно искал в Интернете инструкции по разбору XML в JAVA. Моя конечная цель, я думаю, довольно проста - извлечь и сохранить в переменной конкретную часть «помеченных» XML-данных и использовать ее в другом месте. На прошлой неделе я стал очень близко использовать DOM, но не смог получить данные, сохраненные и переданные в другую часть. Я мог отобразить его и почувствовал, что я почти там. Я мог бы использовать некоторые дополнительные советы и указания. – user638361
Я читал и работал по упомянутым ссылкам. Я чувствую себя как примеры, упомянутые в http://docs.oracle.com/javase/tutorial/jaxp/stax/example.html # bnbfz Предположим, что уровень владения JAVA определен невелик - кажется, что примеры дают snip-его и частичные фрагменты кода, а оставшийся код должен быть очевиден. Я мог бы использовать некоторые дополнительные советы и указания. Благодаря! – user638361