PHP - xml 中的两个相同节点
PHP - Two same nodes in xml
我有以下代码:
<?php
$str = '<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<ITEM>
<TITLE>Title1</TITLE>
<CATEGORY>Books</CATEGORY>
<CATEGORY>Books | Novel</CATEGORY>
</ITEM>
<ITEM>
<TITLE>Title2</TITLE>
<CATEGORY>Books</CATEGORY>
<CATEGORY>Books | Sci-fi</CATEGORY>
</ITEM>
</ROOT>';
$xml = simplexml_load_string($str);
$s_xml = $xml->xpath("/ROOT/ITEM");
foreach($s_xml as $s_cat){
$cat_group = htmlspecialchars($s_cat->CATEGORY);
echo $cat_group."<BR />";
}
?>
我无法编辑 XML 所以我需要解决以下问题。如何对 PHP 说我需要显示名为 CATEGORY 的第二个节点而不是第一个节点。在我的示例中,我有输出
Books
Books
我需要:
Books | Novel
Books | Sci-fi
谢谢!
这就是您要查找的内容(注意 [1]):
$cat_group = htmlspecialchars($s_cat->CATEGORY[1]);
取类别元素数组中的第二项
您始终可以这样查看您的元素,以了解结构的外观:
print_r($s_cat->CATEGORY);
我有以下代码:
<?php
$str = '<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<ITEM>
<TITLE>Title1</TITLE>
<CATEGORY>Books</CATEGORY>
<CATEGORY>Books | Novel</CATEGORY>
</ITEM>
<ITEM>
<TITLE>Title2</TITLE>
<CATEGORY>Books</CATEGORY>
<CATEGORY>Books | Sci-fi</CATEGORY>
</ITEM>
</ROOT>';
$xml = simplexml_load_string($str);
$s_xml = $xml->xpath("/ROOT/ITEM");
foreach($s_xml as $s_cat){
$cat_group = htmlspecialchars($s_cat->CATEGORY);
echo $cat_group."<BR />";
}
?>
我无法编辑 XML 所以我需要解决以下问题。如何对 PHP 说我需要显示名为 CATEGORY 的第二个节点而不是第一个节点。在我的示例中,我有输出
Books
Books
我需要:
Books | Novel
Books | Sci-fi
谢谢!
这就是您要查找的内容(注意 [1]):
$cat_group = htmlspecialchars($s_cat->CATEGORY[1]);
取类别元素数组中的第二项
您始终可以这样查看您的元素,以了解结构的外观:
print_r($s_cat->CATEGORY);