亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SimpleXML:根據子元素的內容選擇父節點

SimpleXML:根據子元素的內容選擇父節點

PHP
胡說叔叔 2023-04-02 10:39:46
這應該是一件容易的事,但我只是沒有讓它工作:在下面的代碼片段中,我想選擇具有值為“Categoryname2”的子節點<WebFilterCategory>的節點:<Name><?php$xmlstring = <<<XML<?xml version="1.0" encoding="UTF-8"?><Request>  <Login>    <UserName>admin</UserName>    <Password>admin</Password>  </Login>  <Set Operation="get">    <WebFilterCategory transactionid="">      <Name>Categoryname1</Name>      <Classification>Objectionable</Classification>      <DomainList>        <Domain>example1.com</Domain>        <Domain>example2.com</Domain>      </DomainList>    </WebFilterCategory>    <WebFilterCategory transactionid="">        <Name>Categoryname2</Name>        <Classification>Objectionable</Classification>        <DomainList>            <Domain>example1.org</Domain>            <Domain>example2.org</Domain>        </DomainList>    </WebFilterCategory>  </Set></Request>XML;$xml = simplexml_load_string( $xmlstring ) or die("Error: Cannot create object");foreach ($xml->query('//WebFilterCategory/Name[contains(., "Categoryname2")]') as $category) {    print_r($xmlstring);}?>可能還有一個更精簡的查詢來獲得所需的結果。
查看完整描述

1 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

你要找的方法query不是xpath


然后您可以更新路徑以匹配 Name 包含的 WebFilterCategoryCategoryname2


//WebFilterCategory[Name[contains(., "Categoryname2")]]'?

更新代碼


$xml = simplexml_load_string( $xmlstring ) or die("Error: Cannot create object");

foreach ($xml->xpath('//WebFilterCategory[Name[contains(., "Categoryname2")]]') as $category) {

? ? print_r($category);

}

輸出


SimpleXMLElement Object

(

? ? [@attributes] => Array

? ? ? ? (

? ? ? ? ? ? [transactionid] =>?

? ? ? ? )


? ? [Name] => Categoryname2

? ? [Classification] => Objectionable

? ? [DomainList] => SimpleXMLElement Object

? ? ? ? (

? ? ? ? ? ? [Domain] => Array

? ? ? ? ? ? ? ? (

? ? ? ? ? ? ? ? ? ? [0] => example3.org

? ? ? ? ? ? ? ? ? ? [1] => example2.org

? ? ? ? ? ? ? ? )


? ? ? ? )


)


查看完整回答
反對 回復 2023-04-02
  • 1 回答
  • 0 關注
  • 133 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號