私は以下のXMLファイルを持っており、各 "ing-div"ノードにタグ "ing"が存在する正確な発生回数を知りたいと思います。それは私が各成分のタイトルのために存在する成分の数を決定するのに役立ちます(すなわち、4つの成分を含むフルーツ、4つの成分を有するスポンジケーキ...)。助言がありますか?phpで特定のノードの子要素の発生数を数えるには?
<?xml version="1.0" encoding="UTF-8"?>
<recipeml version="0.5">
<recipe>
<head>
<title>1,000 Calorie-A-Bite Trifle</title>
<categories>
<cat>Desserts</cat>
<cat>Usenet</cat></categories>
<yield>1</yield></head>
<ingredients>
<ing-div>
<title>FRUIT</title>
<ing>
<amt>
<qty>3</qty>
<unit/></amt>
<item>Pears</item></ing>
<ing>
<amt>
<qty>8</qty>
<unit>ounces</unit></amt>
<item>Raspberries (tinned or fresh)</item></ing>
<ing>
<amt>
<qty>1</qty>
<unit/></amt>
<item>Passion fruit</item></ing>
<ing>
<amt>
<qty/>
<unit/></amt>
<item>Dry sherry (1 bottle)</item></ing></ing-div>
<ing-div>
<title>SPONGE CAKE</title>
<ing>
<amt>
<qty>1/2</qty>
<unit>cups</unit></amt>
<item>Butter</item></ing>
<ing>
<amt>
<qty>10</qty>
<unit>tablespoons</unit></amt>
<item>Sugar, castor</item></ing>
<ing>
<amt>
<qty>1 1/4</qty>
<unit>cups</unit></amt>
<item>Flour, self-raising</item></ing>
<ing>
<amt>
<qty>2</qty>
<unit/></amt>
<item>Eggs (slightly whisked)</item></ing></ing-div>
<ing-div>
<title>CUSTARD</title>
<ing>
<amt>
<qty>2</qty>
<unit/></amt>
<item>Eggs</item></ing>
<ing>
<amt>
<qty>1</qty>
<unit>pinch</unit></amt>
<item>Salt</item></ing>
<ing>
<amt>
<qty>1</qty>
<unit>pinch</unit></amt>
<item>Nutmeg</item></ing>
<ing>
<amt>
<qty>10</qty>
<unit>ounces</unit></amt>
<item>Double cream (or use whipping cream)</item></ing></ing-div>
<ing-div>
<title>TOPPING</title>
<ing>
<amt>
<qty>10</qty>
<unit>ounces</unit></amt>
<item>Double cream</item></ing>
<ing>
<amt>
<qty/>
<unit/></amt>
<item>Roast almonds</item></ing></ing-div></ingredients>
<directions>
<step> Peel and slice pears, drain raspberries if tinned, and scoop out passion
fruit. Place fruit in large trifle bowl and add an ample quantity of
sherry. Leave for twenty-four hours to soak in the refrigerator.
Preheat oven to 350 degrees F. Cream butter and sugar until light and
fluffy. Add eggs and about 2 T of flour and beat. Fold in rest of flour.
Bake in 7-inch square tin for 25-30 mins until brown. Let cool. Slice into
fingers and arrange on top of fruit. More sherry may be added at this
point.
Pour one large glass of sherry. Mix eggs and add all ingredients to small
bowl. Place bowl in pan of simmering water. Stir continuously with wooden
spoon, sipping sherry, until custard thickens. This takes about ten
minutes. Pour custard on top of sponge. Chill in fridge. Whip cream until
stiff and smooth over top of custard. Arrange almonds decoratively.
NOTES:
* The title says it all -- This recipe is my own invention.
: Difficulty: moderate
: Time: 1 hour preparation, 1 day waiting, 10 minutes cooking.
: Precision: no need to measure.
: Angi Lamb
: Department of Computer Science, University of York, UK
: ukc!minster!angi
: Copyright (C) 1986 USENET Community Trust
From Gemini's MASSIVE MealMaster collection at www.synapse.com/~gemini
</step></directions></recipe></recipeml>
レシピタイトルと原料タイトルの表示に問題はありませんが、問題は各成分のタイトルの成分数を知りたいということです。このコードは最後から最初までは動作しますが、最初からは動作しません。助言がありますか? $ xml =新しいDOMDocument(); $ xml-> load(path/to/file); $ xpath =新しいDOMXPath($ xml); $ ingdiv = $ xpath-> query( "/ recipeml/recipe/ingredients/ing-div"); $ length = $ ingdiv-> length; //最初 特定プリント$ xpath->クエリ( "INGの"、$ ingdiv->アイテム($での一方($ length--) {//番号に最後からすべてを反復長さ)) - >長さ; } –
T3000
おっと、私の元のコードを忘れていました。あなたも修正しました – Trey
ありがとうございましたTrey、今はうまくいきます!そしてあなたの助けを借りて皆様に感謝します! – T3000