Jak porównać dwa węzły XML i uzyskać wynik porównania za pomocą XSLT? [Zamknięte]
Plik XML jako dane wejściowe i oczekiwane dane wyjściowe przedstawione poniżej. Czy można sondować link ...
Porównanie wartości węzła XSLT
Szukam wyjścia w xml, ale byłoby wspaniale, gdyby ktoś tworzył plik xslt, który daje / pokazuje wynik w formacie tabelarycznym.
Opis: Plik XML zawiera zbiór węzłów stacji operatorskich, z każdą stacją operatora ma wiele sieci, teraz zbierz adres IP z każdego węzła każdej stacji operatora i pokaż jego wartość i porównaj status z każdą stacją Operatora, jak pokazano poniżej. Jeśli każda sieć IP stacji operatorskiej jest równa, oznacza to, że jest równy, inaczej nierówny. Porównania należy dokonać z adresem IP z odniesieniem do Family and Name. Podobnie jak porównywanie adresu IP OS01 z innymi systemami operacyjnymi mającymi tę samą rodzinę (ustawienia sieciowe) i nazwę (sieć A).
Plik XML jako dane wejściowe
![<?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>
Oczekiwany wynik.
Oczekiwane dane wyjściowe przy użyciu XSLT: Tutaj nie ma opcji dodawania tabeli, więc rozważ <> jako separator, który jest używany do projektowania tabeli, <> nie jest częścią wyniku, jest właśnie dodawany do oddzielnych wartości kolumn. Proszę wziąć pod uwagę wynik poniżej, tak jak w tabeli.
nagłówekNazwa <> Status <> OS01 <> OS02 <> OS03
Sieć A <> Równa <> 111.11.11.1 <> 111.11.11.1 <> 111.11.11.1
Sieć B <> Nierówna <> 111.22.11.1 <> 111.22.11.2 <> 111.22.11.2
Sieć C <> Nierówna <> 111.33.11.1 <> Nie istnieje <> Nie istnieje
Sieć D <> Nierówna <> Nie istnieje <> 111.33.11.2 <> Nie istnieje
Sieć E <> Nierówna <> Nie istnieje <> Nie istnieje <> 111.33.11.3
LUB Kod poniżej pokazuje oczekiwany wynik w formacie tabelarycznym. Zapisz poniżej kod fileName.html.
<!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>