私はこの XML でさまざまな選択をしていますが、ほとんどの場合、最も単純な解決策を実行したかどうか確信が持てず、そのうちの 2 つについては、実用的な解決策を提供できません。
<?xml version="1.0" ?>
<!DOCTYPE list[
<!ELEMENT list(man|woman)*>
<!ELEMENT man(sons,daughters)>
<!ATTLIST man name CDATA #REQUIRED>
<!ELEMENT man(sons,daughters)>
<!ATTLIST woman name CDATA #REQUIRED>
<!ELEMENT sons(man)*>
<!ELEMENT daughters(woman)*>
<list>
<man name="Jean-Bernard">
<sons>
<man name="Marc-Antoine"/>
</sons>
<daughters>
<woman name="Marie-Jeanne">
<sons/>
<daughters>
<woman name="Anne-Sophie"/>
</daughters>
</woman>
<woman name="Rose-Marie">
<daughters>
<woman name="Marie-Cécile"/>
</daughters>
</woman>
</daughters>
</man>
<woman name="Marie-Jeanne">
<sons>
<man name="Ghislain-Auguste">
<sons/>
</man>
</sons>
<daughters>
<woman name="Rita-Lise">
<sons>
<man name="Alain-Luc"/>
<man name="Jules-Edouard"/>
</sons>
</woman>
</daughters>
</woman>
</list>
私がやった事 :
- すべての女性を選択:
//woman
- 名前が「Marie Jeanne」の女性をすべて選択:
//woman[@name='Marie-Jeanne']
- 名前に「Marie」を含むすべての女性を選択:
//woman[contains(@name,Marie)]
私がやったことですが、これは正確ではないか、もっと良いと思います:
- 少なくとも 2 人の子供を持つすべての女性または男性を選択する :
//*[sum(count(sons/man), count(daughters/woman)) >= 2]
- 祖父母であるすべての女性または男性を選択する:私はこれに完全に行き詰まっています。未知数でどのように選択できるかわかりません。私の考えでは、これはそのようなものです:
//*/*/*/*
. . . 始め方がわかりません。