Como comparar dois nós XML e obter resultados comparados usando XSLT? [fechadas]
Arquivo XML como entrada e saída esperada mostrada abaixo. Can refere link ...
Comparação de valor do nó XSLT
Eu estou procurando saída em xml, mas seria ótimo se alguém criar arquivo xslt que dá / mostra resultado em formato tabular.
O arquivo Desc: XML contém uma coleção de nós da estação do operador, com cada estação do operador com várias redes, agora colete o endereço IP de cada nó de cada estação do operador e mostre seu valor e status comparado com cada estação do operador, conforme mostrado abaixo. Se todo IP da rede da estação do operador for igual, ele exibirá o status como Igual, caso contrário, Desigual. A comparação deve ser feita com o IPAddress com referência à Família e Nome. Como comparar o endereço IP do OS01 com outros sistemas operacionais com a mesma família (NetworkSettings) e nome (rede A).
Arquivo XML como entrada
![<?xml version="1.0" encoding="utf-8"?>
<OperatorStationCollection xmlns="http://www.w3.org" >
<OperatorStation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Name>KM-OS001</Name>
<Nodes>
<DataNodeBase xsi:type="Adaptor">
<Family>NetworkSettings</Family>
<Name>Network A</Name>
<IPAddress>111.11.11.1</IPAddress>
</DataNodeBase>
<DataNodeBase xsi:type="Adaptor">
<Family>NetworkSettings</Family>
<Name>Network B</Name>
<IPAddress>111.22.11.1</IPAddress>
</DataNodeBase>
<DataNodeBase xsi:type="Adaptor">
<Family>NetworkSettings</Family>
<Name>Network C</Name>
<IPAddress>111.33.11.1</IPAddress>
</DataNodeBase>
</Nodes>
</OperatorStation>
<OperatorStation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Name>KM-OS002</Name>
<Nodes>
<DataNodeBase xsi:type="Adaptor">
<Family>NetworkSettings</Family>
<Name>Network A</Name>
<IPAddress>111.11.11.1</IPAddress>
</DataNodeBase>
<DataNodeBase xsi:type="Adaptor">
<Family>NetworkSettings</Family>
<Name>Network B</Name>
<IPAddress>111.22.11.2</IPAddress>
</DataNodeBase>
<DataNodeBase xsi:type="Adaptor">
<Family>NetworkSettings</Family>
<Name>Network D</Name>
<IPAddress>111.33.11.2</IPAddress>
</DataNodeBase>
</Nodes>
</OperatorStation>
<OperatorStation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Name>KM-OS003</Name>
<Nodes>
<DataNodeBase xsi:type="Adaptor">
<Family>NetworkSettings</Family>
<Name>Network A</Name>
<IPAddress>111.11.11.1</IPAddress>
</DataNodeBase>
<DataNodeBase xsi:type="Adaptor">
<Family>NetworkSettings</Family>
<Name>Network B</Name>
<IPAddress>111.22.11.3</IPAddress>
</DataNodeBase>
<DataNodeBase xsi:type="Adaptor">
<Family>NetworkSettings</Family>
<Name>Network E</Name>
<IPAddress>111.33.11.3</IPAddress>
</DataNodeBase>
</Nodes>
</OperatorStation>
</OperatorStationCollection>
Saída esperada.
Saída esperada usando XSLT: aqui nenhuma opção para adicionar tabela, por favor considere <> como separador que é usado para projetar tabela, <> não faz parte do resultado, apenas é adicionado aos valores das colunas separadas. Por favor, considere o resultado abaixo como está na tabela.
CabeçalhoNome <> Status <> OS01 <> OS02 <> OS03
Rede A <> Igual a <> 111.11.11.1 <> 111.11.11.1 <> 111.11.11.1
Rede B <> Desigual <> 111.22.11.1 <> 111.22.11.2 <> 111.22.11.2
Rede C <> Desigual <> 111.33.11.1 <> Não existe <> Não existe
Rede D <> Desigual <> Não existe <> 111.33.11.2 <> Não existe
Rede E <> Desigual <> Não existe <> Não existe <> 111.33.11.3
OU O código abaixo mostra o resultado esperado em formato de tabela. Salve o código fileName.html abaixo.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<table>
<tr>
<td>Name</td><td>Status</td><td>OS01</td><td>OS02</td><td>OS03</td>
</tr>
<tr>
<td>Network A</td><td>Equal</td><td>111.11.11.1</td><td>111.11.11.1</td><td>111.11.11.1</td>
</tr>
<tr>
<td>Network B</td><td>Unequal</td><td>111.22.11.1</td><td>111.22.11.2</td><td>111.22.11.2</td>
</tr>
<tr>
<td>Network C</td><td>Unequal</td><td>111.33.11.1</td><td>Not Exist</td><td>Not Exist</td>
</tr>
<tr>
<td>Network D</td><td>Unequal</td><td>Not Exist</td><td>111.33.11.2</td><td>Not Exist</td>
</tr>
<tr>
<td>Network E</td><td>Unequal</td><td>Not Exist</td><td>Not Exist</td><td>111.33.11.3</td>
</tr>
</table>
</body>
</html>