---
# System prepended metadata

title: 解題 DEMO

---



# 解題 DEMO

> 6年前，母親的年齡是兒子的5倍，6年後母子年齡和是78歲，問：母親今年多少歲？

希望可以Kevin可以output appTree的 xml，這邊直接使用並計算。






## Rule 處理
### 6年前

### 母親的年齡是兒子的5倍 

### 6年後母子年齡和是78歲
normalize：
母親6年後的年齡和兒子6年後的年齡和是78歲





## 程式

### 6年前

### 母親的年齡是兒子的年齡的5倍
```
母親的年齡是兒子的年齡的5倍
├─5倍
├─兒子
│  └─年齡
│      └─六年前
└─母親
    └─年齡
        └─六年前
```
XML example

```xml
<root>
    <人稱 data="母親">
        <年齡 data="年齡">
            <時間 data="六年前"></時間>
        </年齡>
    </人稱>
    <人稱 data="兒子">
        <年齡 data="年齡">
            <時間 data="六年前"></時間>
        </年齡>
    </人稱>
    <倍數 data="5倍"></倍數>
</root>
```

xpath 
```xquery
//人稱[@data="兒子"]/年齡/@data
```
```
m=root.xpath('//人稱[@data="母親"]')
m.xapth('年齡')
```

**Operations Reference**
* xml.etree.ElementTree




### 6年後母子年齡和是78歲

### 問：母親今年多少歲？


## Abandon Records

:::spoiler json
```javascript
[
    {"label":"人稱","value":"母親","child_nodes":
        [
            {"label":"年齡","value":"年齡","child_nodes":[]}
        ]
    },
    {"label":"人稱","value":"兒子","child_nodes":
        [
            {"label":"年齡","value":"年齡","child_nodes":[]}
        ]
    },
    {"label":"倍數","value":"5倍","child_nodes":[]}      
]
```
```javascript
{"root":
    [
        {
            "人稱":
                {    
                    {"年齡":[],"data":"年齡"}
                },
            "data":"母親"
        },
        {
            "人稱":
                [
                    {"年齡":[],"data":"年齡"}
                ],
            "data":"兒子"
        },
        {
            "倍數":[],
            "data":"5倍"
        }      
    ],
    "data":0
}

t[人稱][年齡][data]
```
:::

:::spoiler treelib & anytree
## Treelib
build tree
```python
tree = Tree()
tree.create_node("母親的年齡是兒子的年齡的5倍", "root")  # root node
tree.create_node("母親(人稱)", "人稱_1", parent="root",  data="母親")
tree.create_node("年齡(年齡)", "年齡_1", parent="人稱_1", data="年齡")
tree.create_node("兒子(人稱)", "人稱_2", parent="root",  data="兒子")
tree.create_node("年齡(年齡)", "年齡_2", parent="人稱_2", data="年齡")
tree.create_node("5倍(倍數)", "倍數",    parent="root",  data="5倍")
tree.show()
```

json
```python
import json

js = tree.to_json(with_data=True)

json.loads(js)
```

dictionary
```python
tree.to_dict(with_data=True)
```

https://anytree.readthedocs.io/en/latest/

:::



