如何将多个节点元素类型从XML中转换为一个变量

时间:2015-03-18 00:28:55

标签: javascript php xml

我正在尝试让我的PHP代码从XML文档调用多个不同的节点类型,我想知道这是否可行。

php示例:

$categoryNames = 'CLEANINGCHEMICALS' and 'CLEANINGACCESSORIES';
$x = $xmlDoc->getElementsByTagName($categoryNames);

我已经使用它来使用JavaScript虽然我正在努力的PHP,这是我的javascript示例:

var xmlNode = "CLEANINGACCESSORIES" && "CLEANINGCHEMICALS";
records = xmlDoc.getElementsByTagName(xmlNode);

以下是我用不同节点类型表示的XML示例:

<CLEANINGCHEMICALS>&amp; <CLEANINGACCESSORIES>&amp; <WASHROOMSUPPLIES>

<CATALOG>
    <CLEANINGCHEMICALS>
        <IMAGE>/images/Products/Cleaning Chemical/thumbnails/X22318 Wettex Large Roll.jpg</IMAGE>
        <BIGIMAGE>/images/Products/Cleaning Chemical/X22318 Wettex Large Roll.jpg</BIGIMAGE>
        <TITLE>Wettex Large Roll</TITLE>
        <SHORTDESCRIPTION>x22318 - Wettex Large Roll</SHORTDESCRIPTION>
        <CATEGORY>cleaning-chemicals</CATEGORY>
    </CLEANINGCHEMICALS>
    <CLEANINGACCESSORIES>
        <IMAGE>/images/Products/Cleaning Accessories/thumbnails/1204321 R2 plus with Divermite bottle.jpg</IMAGE>
        <BIGIMAGE>/images/Products/Cleaning Accessories/1204321 R2 plus with Divermite bottle.jpg</BIGIMAGE>
        <TITLE>R2 plus with Divermite bottle</TITLE>
        <SHORTDESCRIPTION>1204321 - R2 plus with Divermite bottle</SHORTDESCRIPTION>
        <CATEGORY>cleaning-accessories</CATEGORY>
    </CLEANINGACCESSORIES>
    <WASHROOMSUPPLIES>
        <IMAGE>/images/Products/Cleaning Accessories/thumbnails/1204323 R3 plus with Divermite bottle.jpg</IMAGE>
        <BIGIMAGE>/images/Products/Cleaning Accessories/1204323 R3 plus with Divermite bottle.jpg</BIGIMAGE>
        <TITLE>R3 plus with Divermite bottle</TITLE>
        <SHORTDESCRIPTION>1204323 - R3 plus with Divermite bottle</SHORTDESCRIPTION>
        <CATEGORY>cleaning-accessories</CATEGORY>
    </WASHROOMSUPPLIES>
</CATALOG>

1 个答案:

答案 0 :(得分:1)

XPath是你的朋友。


实施例

$xpath = new DOMXPath($xmlDoc);
$x = $xpath->query('//CLEANINGCHEMICALS | //CLEANINGACCESSORIES');

DOMXpath::query返回DOMNodeList,与getElementsByTagName相同。查询本身返回两个节点集的并集。