2
我有這樣的代碼評估的XPath查詢和檢索值
$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>
巫婆給了我下面的錯誤
公告:未定義的屬性:的DOMNodeList :: $ nodeValue在C:\ xampp \ htdocs \ brainbook \ profile \ loadmore.php上線30
我想要的就是檢索字段名稱爲AttachedFiles
的行的值,只需運行簡單的Xpath查詢並檢索結果即可。使用XSLT很容易
<xsl:value-of select="$TranslationProfile/Field[@Name = 'AttachedFiles']"/>
但我之前沒有使用PHP Xpath。
這工作,謝謝,但不是真的'$ Xpath->評估(「字符串(Field [@Name ='AttachedFiles'])」);'=='$ Xpath-> evaluate(「Field [@Name ='AttachedFiles']「) - nodeValue;'? '串'是唯一的方法? – Empeus
@Empeus:不,你可以不用'string',但在這種情況下'evaluate'返回一個['DOMNodeList'](http://php.net/manual/en/class.domnodelist.php),你必須迭代。您可以在列表中的每個節點上訪問'nodeValue',但不能在列表本身上訪問。 – Jon
我明白了,謝謝,但用'字符串'更容易 – Empeus