Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP获取父对象';s ID=>;儿童';s值作为XML中的数组_Php_Xml_Xpath_Domdocument - Fatal编程技术网

PHP获取父对象';s ID=>;儿童';s值作为XML中的数组

PHP获取父对象';s ID=>;儿童';s值作为XML中的数组,php,xml,xpath,domdocument,Php,Xml,Xpath,Domdocument,我有一个这样结构的XML文件 <serieslist> <series sid="123"> <title type="main">Series 123 Main Title</title> <title type="official">Series 123 Official Title</title> <title type="short">S 123&l

我有一个这样结构的XML文件

<serieslist>
    <series sid="123">
        <title type="main">Series 123 Main Title</title>
        <title type="official">Series 123 Official Title</title>
        <title type="short">S 123</title>
    </series>
    <series sid="456">
        <title type="main">Series 456 Main Title</title>
        <title type="official">Series 456 Official Title</title>
        <title type="short">S 456</title>
    </series>
    /* +6000 more <series> nodes */
</serieslist>
array(
    123 => "Series 123 Main Title",
    456 => "Series 456 Main Title",
    //...
);
我尝试使用这个xpath查询
//series/title[@type=“main”]
,得到了节点列表

$xml = DOMDocument::load('serieslist.xml');
$xpath = new DOMXPath($xml);
$titles = $xpath->query('//series/title[@type="main"]');
$series = array();
foreach($titles as $title) {
    $series[] = $title->nodeValue;
}
导致

$series = array(
    0 => "Series 123 Main Title",
    1 => "Series 456 Main Title",
    //...
);

但我也需要家长的“sid”属性。我如何以非资源密集型的方式做到这一点?

非常简单。只需参考
$title

foreach($titles as $title) {
    $id = $title->parentNode->getAttribute('sid');
    $series[$id] = $title->nodeValue;
}

很简单。只需参考
$title

foreach($titles as $title) {
    $id = $title->parentNode->getAttribute('sid');
    $series[$id] = $title->nodeValue;
}

我一定要多学习DOMDocument文档,非常感谢。我一定要多学习DOMDocument文档,非常感谢。