我已经编写了一些PHP代码来解析已经使用SimpleXML的xml文件,它非常混乱,但如果有帮助可以包括。
这就是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选择节点,然后使用$ _SERVER请求使用页面URL,这样我就可以检测出应该打开哪个菜单项以使用正确的css样式,例如添加样式到nav name =“menulink1child1child1。 注意,当顶级网页和后续子元素进入该元素的子网页时,应该只选择第1层导航元素
即
homepage: home | menulink1 | menulink2| menulink3 | menulink4 |
menulink1: menulink1
-- childlink1
| menulink2 | menulink3 | menulink4
注意该菜单是垂直的,而不是水平的,因此子元素需要按父元素的正确顺序显示,而不是仅自动显示在网页的新行下方:)
我的问题是;解析需要条件来选择子元素的xml导航文件的最佳方法是什么?我应该考虑使用XSL来转换xml吗?
TIA 贾里德
答案 0 :(得分:0)
值得投资学习XSLT。这是一种人们一见钟情的语言,许多人在掌握它之前就放弃了,但是一旦你怀疑它,它就可以很好地解决这类问题,可以同时用于服务器 - 方和客户方。