Какой язык использовать для разбора xml для навигации - PullRequest
0 голосов
/ 04 февраля 2011

Я написал некоторый php-код для анализа XML-файла уже с SimpleXML, он довольно грязный, но может включать, если это поможет.

Вот как выглядит xml-файл (навигационный файл, это было сделанодействительно странно и не может быть изменено)

    <root name="menutest">
      <menu>
          <nav name="home" path="index.php" />

          <nav name="menulink1" path="link1.php">
              <nav name="menulink1child1" path="menulink1childlink1.php">
                 <nav name="menulink1child1child1"
                      path="menulink1childlink1childlink1.php" />
              </nav>
          </nav>

          <nav name="menulink2" path="link2.php">
             <nav name="menulink1child2" path="menulink2childlink2.php">
                <nav name="menulink2child2child2"
                     path="menulink2childlink2childlink2.php" />
             </nav>
          </nav>

          <nav name="menulink3" path="link3.php">
             <nav name="menulink3child3" path="menulink3childlink3.php">
                 <nav name="menulink3child3child3"
                      path="menulink3childlink3childlink3.php" />
             </nav>
          </nav>

          <nav name="menulink4" path="link4.php">
             <nav name="menulink4child4"
                  path="menulink4childlink4.php">
                 <nav name="menulink4child4child4"
                   path="menulink4childlink4childlink4.php" />
             </nav>
          </nav>
      </menu>
  </root>

Я думал об использовании SimpleXML для анализа и XPATH для выбора узлов, а затем с помощью URL-адреса страницы с помощью запросов $ _SERVER, чтобы я мог определить, какой пункт меню должен бытьоткрыть для использования правильных стилей CSS, например, добавить стиль к nav name = "menulink1child1child1. Обратите внимание , что только элементы навигации уровня 1 должны выбираться для страниц верхнего уровня и последующих дочерних элементов при переходе на дочерние страницы этого элемента

т.е.

 homepage:  home | menulink1 | menulink2| menulink3 | menulink4 | 
 menulink1: menulink1 
            -- childlink1 
            | menulink2 | menulink3 | menulink4

Обратите внимание , что меню вертикальное, а не горизонтальное, поэтому дочерние элементы должны отображаться в правильном порядке родительских элементов, а не только автоматически подв новой строке веб-страницы:)

Мой вопрос: каков наилучший способ анализа файла навигации XML, который требуетуказания для выбора дочерних элементов?Должен ли я смотреть на использование XSL для преобразования XML?

TIA Jared

1 Ответ

0 голосов
/ 04 февраля 2011

Это стоит вложений в изучение XSLT. Это язык, который некоторые люди с первого взгляда находят отталкивающим, и многие отказываются, прежде чем овладеть им, но как только вы его заподозрили, он действительно хорошо работает для такого рода проблем и может использоваться как на сторона и сторона клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...