这是我一直遇到的一些困难.我有一个本地客户端脚本,需要允许用户获取远程网页并搜索结果页面的表单.为了做到这一点(没有正则表达式),我需要将文档解析为完全可遍历的DOM对象.
我想强调的一些限制:
getElementsByTagName需要提供DOM API等.假设我在变量中有一个完整的HTML文档字符串(包括DOCTYPE声明)html,这是我到目前为止所尝试的:
var frag = document.createDocumentFragment(),
div = frag.appendChild(document.createElement("div"));
div.outerHTML = html;
//-> results in an empty fragment
div.insertAdjacentHTML("afterEnd", html);
//-> HTML is not added to the fragment
div.innerHTML = html;
//-> Error (expected, but I tried it anyway)
var doc = new ActiveXObject("htmlfile");
doc.write(html);
doc.close();
//-> JavaScript executes
Run Code Online (Sandbox Code Playgroud)
我也尝试从HTML中提取<head>和<body>节点,并将它们添加到<HTML>片段内的元素,仍然没有运气.
有没有人有任何想法?
我正在开发基于Phonegap的iOS应用程序,该应用程序已经针对Android完成.以下几行适用于Android,但不适用于iOS.为什么?
var d = new Date("2015-12-31 00:00:00");
console.log(d.getDate() + '. ' + d.getMonth() + ' ' + d.getFullYear();
Run Code Online (Sandbox Code Playgroud)
Android的结果:
31.11 2015
Run Code Online (Sandbox Code Playgroud)
iOS上的结果:
NaN. NaN NaN
Run Code Online (Sandbox Code Playgroud)
差异来自哪里?
我有一个包含非英语字符的文件,并使用非英语代码页以ANSI编码保存.如何在C#中读取此文件并正确查看文件内容?
不工作
StreamReader sr=new StreamReader(@"C:\APPLICATIONS.xml",Encoding.ASCII);
var ags = sr.ReadToEnd();
sr=new StreamReader(@"C:\APPLICATIONS.xml",Encoding.UTF8);
ags = sr.ReadToEnd();
sr=new StreamReader(@"C:\APPLICATIONS.xml",Encoding.Unicode);
ags = sr.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
工作但我需要提前知道代码页是什么,这是不可能的.
sr=new StreamReader(@"C:\APPLICATIONS.xml",Encoding.GetEncoding(1252));
ags = sr.ReadToEnd();
Run Code Online (Sandbox Code Playgroud) closest()将通过测试元素本身并遍历DOM树中的祖先来获得与选择器匹配的第一个元素.但我想知道是否有任何方法可以将结果排除在外(我的意思是得到它的父母).
让我举个例子.请检讨一下.
<div id='div1' class="container">
<div id="div2" class="container">
<!--many nested div.container as it directly or indirectly children -->
</div>
<div id="div3" class="container">
<!--many nested div.container as it directly or indirectly children -->
</div>
</div>
$(function() {
$('div.container').on('mouseover', function(e){
//I only want to select the first parent with the class container.
//closest include the this element.
console.log($(this).closest('.container').attr('id'));
});
});
Run Code Online (Sandbox Code Playgroud) 我正在使用Python阅读一系列源代码文件并遇到unicode BOM错误.这是我的代码:
bytes = min(32, os.path.getsize(filename))
raw = open(filename, 'rb').read(bytes)
result = chardet.detect(raw)
encoding = result['encoding']
infile = open(filename, mode, encoding=encoding)
data = infile.read()
infile.close()
print(data)
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在检测编码chardet,然后在内存中读取文件并尝试打印它.包含BOM的Unicode文件的print语句失败,错误如下:
UnicodeEncodeError:'charmap'编解码器无法对位置0-2中的
字符进行编码:字符映射到<undefined>
我猜它正在尝试使用默认字符集解码BOM并且它失败了.如何从字符串中删除BOM以防止这种情况?
我是Scala的新手,我在过去的几天里学到了它.我对Scala从字符串转换的日期表示怀疑.
如何使用Scala将String转换为日期和时间?
它的工作方式与Java相同吗?
当我这样做时,我得到一个编译器错误,我无法将其转换为Scala,因为我是Scala的新手.我知道将Java转换为Scala并不好......
请分享你的答案.
我有不规则的数据.使用highcharts时,图表绘制得很好:
$(function() {
var chart = new Highcharts.Chart({
chart: {
renderTo: 'chart'
},
xAxis: {
type: 'datetime'
},
series: [{
name: 'Volume',
data: chart_arr,
}]
});
});
Run Code Online (Sandbox Code Playgroud)
但我有很多数据,所以我需要放大日期并选择highstock.然后发生一件奇怪的事情:x轴变成非线性的.
$(function() {
var chart2 = new Highcharts.StockChart({
chart: {
renderTo: 'chart2'
},
rangeSelector: {
selected: 0
},
xAxis: {
type: 'datetime'
},
series: [{
name: 'val',
data: chart_arr,
type : 'area',
}]
});
});
Run Code Online (Sandbox Code Playgroud)
请注意,1月6日20:00-20:30半小时范围内的数据比1月11日至13日的2天分配的空间更多.(当然数据是一样的.)
如何强制高轴的x轴变为线性?或者如何为highcharts启用底部缩放工具?谢谢.
如何将(大端)可变大小的二进制字节数组转换为(无符号)整数/长?例如,'\x11\x34'代表4404
现在,我正在使用
def bytes_to_int(bytes):
return int(bytes.encode('hex'), 16)
Run Code Online (Sandbox Code Playgroud)
哪个小而且有点可读,但可能效率不高.有更好的(更明显的)方式吗?
如何将当前的Google地图另存为图片?下面是我用来初始化地图的Javascript.
var myMarker = new google.maps.LatLng(result[0].centerLat, result[0].centerLong);
var myOptions = {
disableDoubleClickZoom: true,
zoom: result[0].zoom,
center: myMarker,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
Run Code Online (Sandbox Code Playgroud)
我查看了https://developers.google.com/maps/documentation/javascript/reference#Map,但似乎没有方法可以返回当前地图对象的网址或图片.是否可以以某种方式将地图另存为图像?
我有一个包含数百万行的文件,每行有3个以空格分隔的浮点数.读取文件需要花费大量时间,因此我尝试使用内存映射文件读取它们,但发现问题不在于IO的速度,而在于解析速度.
我当前的解析是获取流(称为文件)并执行以下操作
float x,y,z;
file >> x >> y >> z;
Run Code Online (Sandbox Code Playgroud)
Stack Overflow中的某些人建议使用Boost.Spirit,但我找不到任何简单的教程来解释如何使用它.
我正在尝试找到一种简单有效的方法来解析看起来像这样的行:
"134.32 3545.87 3425"
Run Code Online (Sandbox Code Playgroud)
我真的很感激一些帮助.我想用strtok来分割它,但我不知道如何将字符串转换为浮点数,我不太确定它是最好的方法.
我不介意解决方案是否会提升.我不介意它是不是有史以来最有效的解决方案,但我确信它可以加倍速度.
提前致谢.