Obtenha o nome do elemento de XML em Java DOM

Michael :

Desejo obter o nome do elemento e imprimir os dados no XML, mas não tenho certeza de como obter dados em um elemento específico.

Aqui está o exemplo XML e meu código.

   <mdb>
    <movies>
    <movie id="godfather">
      <title>The Godfather</title>
      <year>1972</year>
      <directors>
        <director idref="francisfordcoppola"/>
      </directors>
      <genres>
        <genre>Crime</genre>
        <genre>Drama</genre>
      </genres>
       <cast>
        <performer>
          <actor idref="marlonbrando"/>
          <role>Don Vito Corleone</role>
        </performer>
     </cast>
    </movie>
    </movies>

    <performer id="kimnovak">
      <name>Marilyn Pauline Novak</name>
      <dob>1933-02-13</dob>
      <pob>Chicago, Illinois, USA</pob>
      <actedin>
        <movie idref="vertigo"/>
      </actedin>
    </performer>
    </mdb>



try {
        File fXmlFile = new File(filename);
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(fXmlFile);

        NodeList nodes = doc.getElementsByTagName("movie");
         System.out.println("nodes length"+ nodes.getLength());
        for (int i = 0; i < nodes.getLength(); i++){
            Element element = (Element) nodes.item(i);
            NodeList name = element.getElementsByTagName("title");
            Element line = (Element) name.item(0);
            System.out.println(": " + line.getFirstChild().getTextContent());

Eu só quero obter o elemento dentro do filme. mas o código a seguir também lê o <movie idref="vertigo"/>interior do executor (causa a exceção Nullpointer se eu quiser obter o conteúdo); Estou me perguntando se há alguma maneira possível de evitar a leitura de Desempenho usando o DOM?

NodeList nodes = doc.getElementsByTagName("movie");

Meu resultado final para o primeiro filme deve ser assim

('godfather', 'The Godfather', '1972', 'Crime;Drama')
Ramadas:

Uma maneira de fazer isso é começar a ler a partir da tag movies em vez da tag movie. Não tenho certeza se é isso que você está procurando !!.

NodeList nodes = doc.getElementsByTagName("movies");

Element element = (Element) nodes.item(0);
NodeList movieList = element.getElementsByTagName("movie");
for (int i = 0; i < movieList.getLength(); i++) {
    Element movieElement = (Element) movieList.item(i);
    System.out.println(movieElement.getAttributes().getNamedItem("id").getNodeValue());
    NodeList name = movieElement.getElementsByTagName("title");
    NodeList year = movieElement.getElementsByTagName("year");
    NodeList genres = movieElement.getElementsByTagName("genres");
    Element genreline = (Element) genres.item(0);

    System.out.println(name.item(0).getFirstChild().getTextContent());
    System.out.println(year.item(0).getFirstChild().getTextContent());
    System.out.println(genreline.getElementsByTagName("genre").item(0).getTextContent() 
               + ":" + genreline.getElementsByTagName("genre").item(1).getTextContent());
}

Resultado :

: padrinho
: O padrinho
: 1972
: Crime: Drama

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

java Obtenha a lista ou o nome de todos os atributos em um elemento XML

Java / DOM: Obtenha o conteúdo XML de um nó

Obtenha o nome de domínio do endereço IP em Go

Obtenha o nome de domínio do endereço IP em Go

Obtenha o nome de domínio do site atual em AJAX

Obtenha o nome de domínio correto em Eureka no Docker

Obtenha o nome de domínio do url fornecido

Obtenha o nome de domínio do servidor Exchange

Obtenha o nome da tag e do atributo em XML

SAX Parser: Como buscar elemento raiz do XML em java sem dar explicitamente o nome de raiz?

Obtenha o elemento de outro arquivo XML, com base em um valor de elemento do XML atual

Obtenha o valor do elemento por nome do arquivo xml usando Python xml.etree.ElementTree

Obtenha o valor do elemento em xml via python

Obtenha o nome do arquivo de um local de arquivo em Java

Obtenha o nome do campo da classe em Java

Java: Obtenha a extensão do arquivo com "." em seu nome

Obtenha o atributo de nome do vetor de caracteres por nome de elemento

Obtenha o nome do servidor de aplicativos ou ip e porta em Java

Obtenha o nome do operando de um getelementptr LLVM em

Obtenha o nome do arquivo original de MultipartFileData em c #

Obtenha o nome do método de classe em TypeScript

Obtenha o nome do dispositivo de saída em vlc

Obtenha o XML interno de um nó como String em Java DOM

Obtenha o domínio ou nome do host e a porta em Configure do Startup.cs

Obtenha o elemento do conjunto de tuplas em F #

Obtenha o tipo de elemento do array multidimensional em Swift

Obtenha o nome do arquivo de um inputstream (Java)

Obtenha o nome do arquivo em FileOutputStream

Obtenha o nome do aplicativo em Swift

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  3. 3

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  4. 4

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  5. 5

    Gerenciar recurso shake de Windows Aero com barra de título personalizado

  6. 6

    Como obter dados API adequados para o aplicativo angular?

  7. 7

    UITextView não está exibindo texto longo

  8. 8

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  9. 9

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  10. 10

    Usando o plug-in Platform.js do Google

  11. 11

    Como posso modificar esse algoritmo de linha de visada para aceitar raios que passam pelos cantos?

  12. 12

    Dependência circular de diálogo personalizado

  13. 13

    Coloque uma caixa de texto HTML em uma imagem em uma posição fixa para site para desktop e celular

  14. 14

    iOS: como adicionar sombra projetada e sombra de traço no UIView?

  15. 15

    Como usar a caixa de diálogo de seleção de nomes com VBA para enviar e-mail para mais de um destinatário?

  16. 16

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  17. 17

    How to create dynamic navigation menu select from database using Codeigniter?

  18. 18

    Converter valores de linha SQL em colunas

  19. 19

    ChartJS, várias linhas no rótulo do gráfico de barras

  20. 20

    用@StyleableRes注释的getStyledAttributes。禁止警告

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo