回答編集履歴
3
test
CHANGED
@@ -15,10 +15,13 @@
|
|
15
15
|
のように、if と elseを使います。
|
16
16
|
|
17
17
|
具体的に言うと if で比較しているのは、「指定した子要素の数(length)が0より大きいか否か」という点です。
|
18
|
+
たとえば、上のスニペットの1行目
|
19
|
+
const sections = chapter.getChildren("Section");
|
20
|
+
は、chapterの子要素のうち「Section」という名前を持つ要素たちを抽出して section という変数に格納する、という意味です。
|
18
21
|
|
19
|
-
比較した結果がtrueであれば、要素の中に指定した子要素があると判断して、その子要素
|
22
|
+
比較した結果がtrueであれば、要素の中に指定した子要素があると判断して、その子要素を順次処理します。
|
20
23
|
|
21
|
-
比較した結果がfalseであれば、
|
24
|
+
比較した結果がfalseであれば、要素の中にある子要素は article と見なし、articleを取得する関数を呼び出します。
|
22
25
|
|
23
26
|
|
24
27
|
なお、質問文に記載の法律の場合、
|
2
test
CHANGED
@@ -1,6 +1,27 @@
|
|
1
1
|
下記のように、Article取得部分を関数に切り出して整理してはどうでしょうか。
|
2
2
|
|
3
|
+
|
4
|
+
考え方としては、
|
5
|
+
```js
|
6
|
+
const sections = chapter.getChildren("Section");
|
7
|
+
if (sections.length > 0) { // ********ここ*******
|
8
|
+
sections.forEach(function (section) {
|
9
|
+
section 内の article 取得
|
10
|
+
});
|
11
|
+
} else {
|
12
|
+
chapter 内の article取得
|
13
|
+
}
|
14
|
+
```
|
15
|
+
のように、if と elseを使います。
|
16
|
+
|
17
|
+
具体的に言うと if で比較しているのは、「指定した子要素の数(length)が0より大きいか否か」という点です。
|
18
|
+
|
19
|
+
比較した結果がtrueであれば、要素の中に指定した子要素があると判断して、その子要素内の要素をスキャンします。
|
20
|
+
|
21
|
+
比較した結果がfalseであれば、子要素の中にあるのはarticleと見なし、articleを取得する関数を呼び出します。
|
22
|
+
|
23
|
+
|
3
|
-
質問
|
24
|
+
なお、質問文に記載の法律の場合、
|
4
25
|
MainProvision→Chapter→Section→Article、
|
5
26
|
MainProvision→Chapter→Article
|
6
27
|
だけではなく
|
1
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
var recordrow = lastrow + 1;
|
13
13
|
|
14
14
|
|
15
|
-
function
|
15
|
+
function main() {
|
16
16
|
|
17
17
|
let url = 'https://elaws.e-gov.go.jp/api/1/lawdata/昭和二十五年政令第三百三十八号';
|
18
18
|
let xml = UrlFetchApp.fetch(url).getContentText();
|