Skocz do zawartości

dane xml -> php


zakręcony

Rekomendowane odpowiedzi

przepraszam, że nie dałem w kodzie zawartości pliku xml, ale wtedy bym nie pokazał, o które konkretnie mi wartości chodzi

chiał bym pobrać tylko te wyboldowane

mam taki kod:

<?
$doc = new DOMDocument('1.0', 'UTF-8');
$doc->load('plik.xml');

$wynik = $doc->getElementsByTagName('Value');

for($i = 0; $i < $wynik->length; ++$i){

echo  $wynik->item($i)->nodeValue.'<br><br>';

}

?>

ale w takim przypadku bierze wszystkie dane z "value", mogę je dalej obrabiać sobie w pehapie, ale jak znam życie to DOM pewnie umozliwa dobranie sie w bardziej prosty sposób

plik jest mniej więcej taki:

<?xml version="1.0" encoding="UTF-8" ?>

<FormattedReport xmlns = 'urn:crystal-reports:schemas' xmlns:xsi = 'https://www.w3.org/2000/10/XMLSchema-instance'>

<FormattedAreaPair Level="0" Type="Report">

<FormattedArea Type="Header">

<FormattedSections>

<FormattedSection SectionNumber="0">

<FormattedReportObjects>

<FormattedReportObject xsi:type="CTFormattedSubreport">

<ObjectName>a</ObjectName>

<FormattedAreaPair Level="0" Type="Report">

<FormattedArea Type="Header">

<FormattedSections>

<FormattedSection SectionNumber="0">

<FormattedReportObjects>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:string" FieldName="{wy_Naglowek.wngl_Tresc}"><ObjectName>Tresc</ObjectName>

<FormattedValue>a</FormattedValue>

<Value>a</Value>

</FormattedReportObject>

</FormattedReportObjects>

</FormattedSection>

</FormattedSections>

</FormattedArea>

<FormattedArea Type="Footer">

<FormattedSections>

</FormattedSections>

</FormattedArea>

</FormattedAreaPair>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:string" FieldName="{@NrStrony}"><ObjectName>FldNrStrony</ObjectName>

<FormattedValue>Strona 1/1</FormattedValue>

<Value>Strona 1/1</Value>

</FormattedReportObject>

</FormattedReportObjects>

</FormattedSection>

</FormattedSections>

</FormattedArea>

<FormattedAreaPair Level="1" Type="Group">

<FormattedAreaPair Level="2" Type="Details">

<FormattedArea Type="Details">

<FormattedSections>

<FormattedSection SectionNumber="0">

<FormattedReportObjects>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:unsignedLong" FieldName="RecordNumber"><ObjectName>Field1</ObjectName>

<FormattedValue>1</FormattedValue>

<Value>1.00</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:string" FieldName="{Remanent.tw_Symbol}"><ObjectName>Field2</ObjectName>

<FormattedValue>abcd</FormattedValue>

<Value>abcd</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:string" FieldName="{Remanent.tw_Nazwa}"><ObjectName>Field3</ObjectName>

<FormattedValue>xyz</FormattedValue>

<Value>xyz</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:decimal" FieldName="{Remanent.ilosc}"><ObjectName>Field4</ObjectName>

<FormattedValue>1,000</FormattedValue>

<Value>1.00</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:string" FieldName="{Remanent.tw_JednMiary}"><ObjectName>Field5</ObjectName>

<FormattedValue>szt.</FormattedValue>

<Value>szt.</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:decimal" FieldName="{Remanent.cena}"><ObjectName>Field6</ObjectName>

<FormattedValue>1</FormattedValue>

<Value>1</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:decimal" FieldName="{Remanent.Wartosc}"><ObjectName>Field7</ObjectName>

<FormattedValue>1</FormattedValue>

<Value>1</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:decimal" FieldName="{Remanent.CenaSpr}"><ObjectName>Field8</ObjectName>

<FormattedValue></FormattedValue>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:decimal" FieldName="{Remanent.WartoscSpr}"><ObjectName>Field9</ObjectName>

<FormattedValue></FormattedValue>

</FormattedReportObject>

</FormattedReportObjects>

</FormattedSection>

<FormattedSection SectionNumber="1">

<FormattedReportObjects>

</FormattedReportObjects>

</FormattedSection>

</FormattedSections>

</FormattedArea>

</FormattedAreaPair>

</FormattedAreaPair>

<FormattedAreaPair Level="1" Type="Group">

<FormattedAreaPair Level="2" Type="Details">

<FormattedArea Type="Details">

<FormattedSections>

<FormattedSection SectionNumber="0">

<FormattedReportObjects>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:unsignedLong" FieldName="RecordNumber"><ObjectName>Field1</ObjectName>

<FormattedValue>2</FormattedValue>

<Value>2.00</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:string" FieldName="{Remanent.tw_Symbol}"><ObjectName>Field2</ObjectName>

<FormattedValue>abcd</FormattedValue>

<Value>abcd</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:string" FieldName="{Remanent.tw_Nazwa}"><ObjectName>Field3</ObjectName>

<FormattedValue>xyz</FormattedValue>

<Value>xyz</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:decimal" FieldName="{Remanent.ilosc}"><ObjectName>Field4</ObjectName>

<FormattedValue>1,000</FormattedValue>

<Value>1.00</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:string" FieldName="{Remanent.tw_JednMiary}"><ObjectName>Field5</ObjectName>

<FormattedValue>szt.</FormattedValue>

<Value>szt.</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:decimal" FieldName="{Remanent.cena}"><ObjectName>Field6</ObjectName>

<FormattedValue>1</FormattedValue>

<Value>1</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:decimal" FieldName="{Remanent.Wartosc}"><ObjectName>Field7</ObjectName>

<FormattedValue>1</FormattedValue>

<Value>1</Value>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:decimal" FieldName="{Remanent.CenaSpr}"><ObjectName>Field8</ObjectName>

<FormattedValue></FormattedValue>

</FormattedReportObject>

<FormattedReportObject xsi:type="CTFormattedField" Type="xsd:decimal" FieldName="{Remanent.WartoscSpr}"><ObjectName>Field9</ObjectName>

<FormattedValue></FormattedValue>

</FormattedReportObject>

</FormattedReportObjects>

</FormattedSection>

<FormattedSection SectionNumber="1">

<FormattedReportObjects>

</FormattedReportObjects>

</FormattedSection>

</FormattedSections>

</FormattedArea>

</FormattedAreaPair>

</FormattedAreaPair>

</FormattedReport>

- Reklama -

Podatki we Wrocławiu: biuro podatkowe wrocław

Miejscówa do parkowania przy Okęciu: parking okęcie

Odnośnik do komentarza
Udostępnij na innych stronach

chiał bym pobrać tylko te wyboldowane
No i co stanęło na przeszkodzie ?

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Jak już pobierzesz to musisz jakiś warunek dopisać, bo pogrubienie nie jest elementem DOM para = wartość pliku XML więc w sposób

MyXML->Boldy się nie dobierzesz do tych sekcji.

Pobierz tak jak potrafisz nie ważne, że niezbędną pomocą w PHP ...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

a nie da się tego ruszyć za pomocą SimpleXMLElement(); ?

ja tam moge to i pehapem przy pomocy jakiegoś if'a wyciągnąć, ale może jest jakis skomplikowany sposób, bardziej prawidłowy?

- Reklama -

Podatki we Wrocławiu: biuro podatkowe wrocław

Miejscówa do parkowania przy Okęciu: parking okęcie

Odnośnik do komentarza
Udostępnij na innych stronach

Przecież pogrubienie <strong></strong> jest elementem formatującym string'i, a nie struktura pliku XML / DOM.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

W takim razie bez sensu jest ten opis problemu "chiał bym pobrać tylko te wyboldowane" :)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

przy moim zapytaniu mam wyniki:

a

b

c

d

a

b

c

d

a

b

c

d

a chce mieć

b

d

b

d

b

d

Co tu jest bezsensownego w tym, że "chcę pobrac tylko te wyboldowane"? Nie pisałem, że chce to pomiędzy <b></b> <strong></strong> czy innym znacznikiem html. Pisałem w 1 poście raczej wyraźnie dlaczego nie wrzuciłem w

 tego fragmentu xml'a, by własnie uniknąć pokazania znaczników i ktoś źle nie zrozumiał, a tu i tak lipa :]

- Reklama -

Podatki we Wrocławiu: biuro podatkowe wrocław

Miejscówa do parkowania przy Okęciu: parking okęcie

Odnośnik do komentarza
Udostępnij na innych stronach

@e "chcę pobrac tylko te wyboldowane"

To ma sens, ale sensu nie ma przedstawienie co chciałeś zrobić w 1wszym poście - opisie problemu skoro to NIE O TO CHODZILO.

OK zainteresuj się https://php.net/manual/en/book.simplexml.php

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Ciężko analizować plik XML nie widząc wcięć czyli jego sekcji, ale widać prawidłowość, że te sekcje które Cie interesują są typu:

<FormattedValue>abcd</FormattedValue> więc możesz się też posiłkować wyrażeniem regularnym w celu ich wyciągnięcia.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności