OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2005 Frerich Raabe <raabe@kde.org> | 2 * Copyright (C) 2005 Frerich Raabe <raabe@kde.org> |
3 * Copyright (C) 2006, 2009 Apple Inc. | 3 * Copyright (C) 2006, 2009 Apple Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * | 8 * |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 28 matching lines...) Expand all Loading... |
39 return node && !node->parentNode(); | 39 return node && !node->parentNode(); |
40 } | 40 } |
41 | 41 |
42 String stringValue(Node* node) | 42 String stringValue(Node* node) |
43 { | 43 { |
44 switch (node->nodeType()) { | 44 switch (node->nodeType()) { |
45 case Node::ATTRIBUTE_NODE: | 45 case Node::ATTRIBUTE_NODE: |
46 case Node::PROCESSING_INSTRUCTION_NODE: | 46 case Node::PROCESSING_INSTRUCTION_NODE: |
47 case Node::COMMENT_NODE: | 47 case Node::COMMENT_NODE: |
48 case Node::TEXT_NODE: | 48 case Node::TEXT_NODE: |
49 case Node::CDATA_SECTION_NODE: | |
50 return node->nodeValue(); | 49 return node->nodeValue(); |
51 default: | 50 default: |
52 if (isRootDomNode(node) || node->isElementNode()) { | 51 if (isRootDomNode(node) || node->isElementNode()) { |
53 StringBuilder result; | 52 StringBuilder result; |
54 result.reserveCapacity(1024); | 53 result.reserveCapacity(1024); |
55 | 54 |
56 for (Node& n : NodeTraversal::descendantsOf(*node)) { | 55 for (Node& n : NodeTraversal::descendantsOf(*node)) { |
57 if (n.isTextNode()) { | 56 if (n.isTextNode()) { |
58 const String& nodeValue = n.nodeValue(); | 57 const String& nodeValue = n.nodeValue(); |
59 result.append(nodeValue); | 58 result.append(nodeValue); |
60 } | 59 } |
61 } | 60 } |
62 | 61 |
63 return result.toString(); | 62 return result.toString(); |
64 } | 63 } |
65 } | 64 } |
66 | 65 |
67 return String(); | 66 return String(); |
68 } | 67 } |
69 | 68 |
70 bool isValidContextNode(Node* node) | 69 bool isValidContextNode(Node* node) |
71 { | 70 { |
72 if (!node) | 71 if (!node) |
73 return false; | 72 return false; |
74 switch (node->nodeType()) { | 73 switch (node->nodeType()) { |
75 case Node::ATTRIBUTE_NODE: | 74 case Node::ATTRIBUTE_NODE: |
76 case Node::CDATA_SECTION_NODE: | |
77 case Node::COMMENT_NODE: | 75 case Node::COMMENT_NODE: |
78 case Node::DOCUMENT_NODE: | 76 case Node::DOCUMENT_NODE: |
79 case Node::ELEMENT_NODE: | 77 case Node::ELEMENT_NODE: |
80 case Node::PROCESSING_INSTRUCTION_NODE: | 78 case Node::PROCESSING_INSTRUCTION_NODE: |
81 return true; | 79 return true; |
82 case Node::DOCUMENT_FRAGMENT_NODE: | 80 case Node::DOCUMENT_FRAGMENT_NODE: |
83 case Node::DOCUMENT_TYPE_NODE: | 81 case Node::DOCUMENT_TYPE_NODE: |
84 return false; | 82 return false; |
85 case Node::TEXT_NODE: | 83 case Node::TEXT_NODE: |
86 return !(node->parentNode() && node->parentNode()->isAttributeNode()); | 84 return !(node->parentNode() && node->parentNode()->isAttributeNode()); |
87 } | 85 } |
88 ASSERT_NOT_REACHED(); | 86 ASSERT_NOT_REACHED(); |
89 return false; | 87 return false; |
90 } | 88 } |
91 | 89 |
92 } | 90 } |
93 } | 91 } |
OLD | NEW |