我正在try 返回从数据库接收的XML元素的值
数据库中的XML如下所示
<?xml version="1.0" encoding="UTF-8"?>
<record
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
xmlns="http://www.loc.gov/MARC21/slim">
<leader>00524nam a2200145Ia 4500</leader>
<controlfield tag="001">25</controlfield>
<controlfield tag="008">200930s9999 xx 000 0 und d</controlfield>
<datafield tag="090" ind1=" " ind2=" ">
<subfield code="a">25</subfield>
</datafield>
<datafield tag="100" ind1=" " ind2=" ">
<subfield code="a">20220914 frey50 </subfield>
</datafield>
<datafield tag="101" ind1=" " ind2=" ">
<subfield code="a">fre</subfield>
</datafield>
<datafield tag="200" ind1=" " ind2=" ">
<subfield code="a">Etude sur les métiers -emplois de l'environnement pour la promotion de l'emploi environnemental comme appui a l'INDH</subfield>
<subfield code="e">synthèse du rapport principal</subfield>
</datafield>
<datafield tag="210" ind1=" " ind2=" ">
<subfield code="c">DES MINES ,DE L'EAU ET DE L'ENVIRONNEMENT</subfield>
</datafield>
<datafield tag="215" ind1=" " ind2=" ">
<subfield code="a">33 p.</subfield>
</datafield>
<datafield tag="610" ind1=" " ind2=" ">
<subfield code="a">ACTEURS;ENVIRENNEMENT;EMPLOI</subfield>
</datafield>
<datafield tag="676" ind1=" " ind2=" ">
<subfield code="a">331.34</subfield>
</datafield>
</record>
获取标记为"200"的数据字段及其代码为"a"的子字段
$xml_string = simplexml_load_string($notices->biblio->metadata[0]->metadata);
$nodes = $xml_string->xpath('//datafield[@tag="200"]/subfield[@code="a"]/text()');
我测试了XPath reeformter.com,它工作得很好,但是当我try 返回 node 时,我得到一个空array.我试图删除text()
个,但不幸的是,它并不起作用,我try 了所有的可能性,但没有一个奏效.