Javascript 按节点类型获取元素

Javascript 按节点类型获取元素,javascript,xml,xml-parsing,Javascript,Xml,Xml Parsing,大多数web浏览器在TEXT\u节点中的XML文档元素之间保留空白和新行。我不喜欢那样。我正在解析XML文档,修改它,然后将其序列化回字符串。我希望该字符串不包含额外的空格或节点之间的新行字符。例如: <?xml version="1.0" ?> <bookshelf> <book> <author>John Doe</author> <title>My Favorite Book&l

大多数web浏览器在
TEXT\u节点中的XML文档元素之间保留空白和新行。我不喜欢那样。我正在解析XML文档,修改它,然后将其序列化回字符串。我希望该字符串不包含额外的空格或节点之间的新行字符。例如:

<?xml version="1.0" ?>
<bookshelf>
    <book>
        <author>John Doe</author>
        <title>My Favorite Book</title>
    </book>
    <book>
        <author>Jane Doe</author>
        <title>My Second Favorite Book</title>
    </book>
</bookshelf>

无名氏
我最喜欢的书
无名氏
我第二喜欢的书
应变成:

<?xml version="1.0" ?><bookshelf><book><author>John Doe</author><title>My Favorite Book</title></book><book><author>Jane Doe</author><title>My Second Favorite Book</title></book></bookshelf>
John Doe我最喜欢的书Jane Doe我第二喜欢的书
大多数情况下,我只是尽量将XML文档的大小控制在最小值,因为它的大小通常是兆字节,而人类可读性并不是我主要关心的问题,因为这个文档是由机器生成和处理的

我知道我可以解析文档中的每个节点,测试其节点类型,如果它是
TEXT\u节点
(类型3),
remove()
。然而,考虑到文档中节点的数量,这种方法会影响应用程序的性能。例如,我正在寻找任何可以通过节点类型创建所有元素数组的替代方法。或任何其他想法


谢谢

我还应该注意到,本文档中的一些节点包含包含原始HTML的CDATA节点,这使得REGEXP成为一种困难的方法。您是在服务器端还是在客户端进行转换?大多数解析器(我在Java、Perl和ObjC中使用过)在序列化时默认不使用空格。一个简单的XSLT样式表只包含一个标识转换+
元素,可以用来去除标记之间的所有空格。@helderdarocha我正在解析客户端。不过,使用XSLT是一个有趣的想法。。。我去看看。谢谢