teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

for

2018/11/15 01:31

投稿

papinianus
papinianus

スコア12705

answer CHANGED
@@ -1,1 +1,21 @@
1
- Array.prototype.mapを使うか、分からなければforで処理すればよいのでは?
1
+ Array.prototype.mapを使うか、分からなければforで処理すればよいのでは?
2
+
3
+ ```javascript
4
+ var content = [];
5
+ for(var i = 0; i < content.length; i++) {
6
+ content[i] = content[i].replace(/<.*?>/g, '');
7
+ }
8
+ ```
9
+
10
+ ただ、これで済むならjavascriptで、gasのタグの意味がないです。↓このようにXmlServiceを使えばpタグのみ、アンカータグのhref属性を無視して取得できます。
11
+ ```javascript
12
+ const xml = "<html><body><h1>a</h1><p>a<a href='http'>link</a></p><p>b</p></body></html>";
13
+ const doc = XmlService.parse(xml);
14
+ const desc = doc.getDescendants();
15
+ var dat = [];
16
+ for(var i = 0; i < desc.length; i++) {
17
+ var elm = desc[i].asElement();
18
+ if(elm != null && elm.getName() == 'p') {dat.push(elm.getValue());}
19
+ }
20
+ ```
21
+ ただ、これが動くにはhtmlがxmlとして正しく定義されている必要があります(タグがきちんと対応しているなど)が…