在PHP中解析返回多个值的XML
我需要得到“name”标签的值,其中标签是“必需的”和“可选的”。如何在PHP中做到这一点? 我想要的结果是: 必需-二进制名称,文档测试名称 可选-文件名1、文件名2、文件名3在PHP中解析返回多个值的XML,php,xml,Php,Xml,我需要得到“name”标签的值,其中标签是“必需的”和“可选的”。如何在PHP中做到这一点? 我想要的结果是: 必需-二进制名称,文档测试名称 可选-文件名1、文件名2、文件名3 <?xml version="1.0" encoding="UTF-8"?> <test> <required> <item type="binary"> <name>binary name</name&g
<?xml version="1.0" encoding="UTF-8"?>
<test>
<required>
<item type="binary">
<name>binary name</name>
<url visibility="restricted">test.exe</url>
</item>
<item type="document" subtype="mytype">
<name>doc test name</name>
<url visiblity="visible">my.pdf</url>
</item>
</required>
<optional>
<item type="document">
<name>doc name1</name>
<url visiblity="visible">user_guide1.pdf</url>
</item>
<item type="document2">
<name>doc name2</name>
<url visiblity="visible">user_guide2.pdf</url>
</item>
<item type="document3">
<name>doc name3</name>
<url visiblity="visible">user_guide3.pdf</url>
</item>
</optional>
<dependencies>
<dependency>
<url>test4.xml</url>
</dependency>
</dependencies>
</test>
双名
test.exe
文档测试名称
my.pdf
文件名称1
用户指南1.pdf
文件名称2
用户指南2.pdf
文件名3
用户指南3.pdf
test4.xml
您可以使用XML解析器或SimpleXML
$xml = new SimpleXMLElement($yourXml);
带XPath的SimpleXML:
$xmlSrc=Phil关于SimpleXML/XPath的说法在另一种情况下有效吗?这和那个问题有什么不同呢?我替换$xml=simplexml\u load\u文件('text.xml');代替$xml=新的simplexmlement($xmlSrc);那么它对我来说很管用。
$xmlSrc =<<<XML
<test>
<required>
<item type="binary">
<name>binary name</name>
<url visibility="restricted">test.exe</url>
</item>
<item type="document" subtype="mytype">
<name>doc test name</name>
<url visiblity="visible">my.pdf</url>
</item>
</required>
<optional>
<item type="document">
<name>doc name1</name>
<url visiblity="visible">user_guide1.pdf</url>
</item>
<item type="document2">
<name>doc name2</name>
<url visiblity="visible">user_guide2.pdf</url>
</item>
<item type="document3">
<name>doc name3</name>
<url visiblity="visible">user_guide3.pdf</url>
</item>
</optional>
<dependencies>
<dependency>
<url>test4.xml</url>
</dependency>
</dependencies>
</test>
XML;
$xml = new SimpleXMLElement($xmlSrc);
$required_names = $xml->xpath('/test/required/item/name');
$optional_names = $xml->xpath('/test/optional/item/name');
print_r($required_names);
print_r($optional_names);