用PHP搜索和显示XML内容
我有一个XML文件,里面填充了“producers” 以下是文件外观的示例:用PHP搜索和显示XML内容,php,xml,Php,Xml,我有一个XML文件,里面填充了“producers” 以下是文件外观的示例: <producer> <name>John Doe's Fish Emporium!</name> <owner>John Doe</owner> <address> <civic>123</civic> <mailing>Example Drive</mailin
<producer>
<name>John Doe's Fish Emporium!</name>
<owner>John Doe</owner>
<address>
<civic>123</civic>
<mailing>Example Drive</mailing>
<town>Halifax</town>
<province>Nova Scotia</province>
<postal>A1B 2C3</postal>
<phone>902-123-4567</phone>
<fax>902-098-7654</fax>
<email>john@example.com</email>
<website>www.example.com</website>
</address>
<products>
<product>Pollock (Saithe)</product>
<product>Flounder/Sole</product>
<product>Salmon, Farm Raised</product>
<product>Mussels, Blue</product>
</products>
<exports>
<region>Europe</region>
<region>North America</region>
<region>Pacific Rim</region>
<region>United States</region>
</exports>
</producer>
约翰·多伊的鱼商场!
无名氏
123
示例驱动器
哈利法克斯
新斯科舍省
A1B 2C3
902-123-4567
902-098-7654
john@example.com
www.example.com
波洛克(赛特)
比目鱼
鲑鱼,农场养殖
蓝色贻贝
欧洲
北美
环太平洋
美国
用户将在html表单中输入一个值,该表单将在XML文档中搜索该关键字,然后打印出整个生成器。因此,例如,如果用户搜索产品鲑鱼,搜索将吐出上面的整个生产者。如何检测我在XML文档中的位置,然后回显整个生产者
谢谢 这个问题已经回答了很多次,请查看右侧的相关链接。以下是您需要的: 这可能会有帮助:-
$obj = simplexml_load_string(...);
$expr = "/producer/products/product[contains(text(),'salmon')]/../..";
$found = $obj->xpath($expr);
享受,享受 我假设您的producer元素是producers根节点的直接子元素。如果不是,则相应调整:
/producers/producer[descendant::*[contains(text(), "Salmon")]]
这将查找在其任何子文本节点中包含文本鲑鱼的所有生产者元素。此XPath允许您搜索所有子节点,例如区域、城镇、产品等,而不考虑级别
有关样板代码,请参阅。我目前正在使用SimpleXML,但我看不到任何访问元素父标记的方法。这可能应该是一条注释并标记原始问题try xpath,正如我在编辑中所说的,这已经回答了很多次,如果你不只是因为我用推荐信回答了你的问题而拒绝投票,而不是向你提供你很容易找到的答案,我将不胜感激。@Russell Saari我以后会这样做。我想我应该搜索类似的问题。道歉。我没有投你反对票。