![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 573 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam prośbę, nie mogę znaleźć metody na wyświetlanie sformatowanego tekstu? Używam biblioteki DOMDocument w pliku xml mam taki kod:
w pliku xsl kod jest taki:
a problem nie wczytuje mi znaczników <b>pogrubienia</b>, jak odczytać pogrubienie? I jeden problem więcej z CDATA, które muszę wyciąć aby wyświetlić kod, w przeciwnym razie nie czyta listy. Co zrobić, aby wyświetlać całą zawartość z <code> pozostawiając oryginalną pełną zawartość pliku bez konieczności usuwania CDATA? -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nie możesz użyć tutaj XSL-a, ponieważ to co masz w znaczniku <code> to zwykły tekst, który nie ma żadnego znaczenia (z punktu widzenia XML-a). Tam nie ma żadnego znacznika, możesz to traktować na równi z "Ala ma kota".
Musiałbyś najpierw pozbyć się otaczającego CDATA: 1. Wczytaj cały dokument. 2. Odczytaj zawartość z elementu <code>. 3. Na podstawie odczytanej treści utwórz nowy dokument (a dokładniej fragment). 4. W pierwotnym dokumencie usuń całą zawartość <code>, dodaj wygenerowany fragment dokumentu i całość zapisz. 5. Dopiero na takim dokumencie używaj XSL. Od biedy - jeżeli to jakiś jednorazowy/niezbyt istotny skrypt - str_replace i na pałę wywal "<![CDATA[" oraz "]]>". Ale jeżeli to normalny skrypt, licz się z tym, że prędzej czy później takie coś spowoduje błędy. Ten post edytował Crozin 29.02.2012, 20:00:08 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 573 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
To normalny skrypt.
1. Wczytaj cały dokument. - Ok 2. Odczytaj zawartość z elementu <code>. - Tak, ale takich elementów jest w pliku dziesiątki 3. Na podstawie odczytanej treści utwórz nowy dokument (a dokładniej fragment). - Nowe dokumenty dla każdego <code> to dziesiątki dokumentów (co masz dokładniej na myśli mówiąc dokument) 4. W pierwotnym dokumencie usuń całą zawartość <code>, dodaj wygenerowany fragment dokumentu i całość zapisz. - Jak tutaj dodać na miejsce każdego <code> odpowiedni fragment (z instrukcji brzmi to jak bym miał dodać na miejsce <code> to samo co wcześniej wyciąłem, o co chodzi?) 5. Dopiero na takim dokumencie używaj XSL. - Te pliki xml i xsl miały ze sobą już działać. Po co tyle plików, dokumentów, może jeszcze raz, please ![]() Ten post edytował Malinaa 29.02.2012, 20:28:21 -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Może i nie powinienem tego robić, ale bardziej mi się chciało przykład zrobić niż całość opisywać.
![]() Taki dokument (o ile to poprawnie działa) dopiero poddajesz transformacjom. EDIT: W sumie zamiast usuwania elementów i dodania jednego na końcu, można by po prostu skorzystać z DOMNode::replaceChild(). Ten post edytował Crozin 29.02.2012, 20:48:51 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 573 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje Crozin,
ten kod jak widzę "usuwa" CDATA - super, czyli zostało tylko pogrubienie? -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Ten kod zamienia tekst na konkretne elementy XML-a - zapisz/wyświetl sobie zmodyfikowany plik, to zobaczysz pełną różnicę.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 573 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Patrzę na różnicę, kod jest ładnie poukładany, ale w kodzie widzę, że usunięto tylko CDATA inne bez zmian?
Do kodu, który przesłałeś dodałem taki kod:
Czy muszę tutaj produkować taką liczbę plików i wszystkie zapisywać ? Strona jest już cool. XML, HTML z CSS pięknie już wygląda, ale nadal i tylko brak na stronie <b>pogrubienia</b> w listach wyliczeniowych jak je uzyskać ? -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.05.2025 - 07:55 |