私はこのコードを持っています
$XMLTranslationObject = new DOMDocument();
$XMLTranslationObject->load("../xdata/xml/translation/en-US/profile.xml");
$Xpath = new DOMXpath($XMLTranslationObject);
$Result = $Xpath->evaluate("Field[@Name = 'AttachedFiles']")->nodeValue;
echo $Result;
そしてxml
<?xml version="1.0" encoding="ISO-8859-1"?>
<Translation language="en-US">
<!-- Basic Begin -->
<Field Name="SiteName">Brainfavor</Field>
<Field Name="Error">Error</Field>
<!-- Basic End -->
<!-- Header Begin -->
<Field Name="Name">Name</Field>
<Field Name="WorkingAt">Working at</Field>
<Field Name="Phone">Phone</Field>
魔女は私に次のエラーを与えます
注意: 未定義のプロパティ: 30 行目の C:\xampp\htdocs\brainbook\profile\loadmore.php の DOMNodeList::$nodeValue
私が望むのは、フィールド名が である行の値を取得するAttachedFiles
ことだけです。単純な Xpath クエリを実行して結果を取得するだけです。XSLT を使用すると簡単です
<xsl:value-of select="$TranslationProfile/Field[@Name = 'AttachedFiles']"/>
しかし、以前は PHP Xpath を使用したことがありませんでした。