获取标签
问题描述:
我必须提取标签的内容之间的内容,这里是我有:获取标签
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">iVBORw0KGgoAAAANSUhEUgAAAU0AAAD6CAYAAAAlSBW9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhehP1lnB3H1a4P75Ely8zMzOyYHcccjsNOHNtx7IDtJCbJgtEwM4tG0kgzghnRaEgMI2aWLNlisMVMlgxa73Wv2tvJ85xz ...
</string>
,这里是什么,我想:
iVBORw0KGgoAAAANSUhEUgAAAU0AAAD6CAYAAAAlSBW9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhehP1lnB3H1a4P75Ely8zMzOyYHcccjsNOHNtx7IDtJCbJgtEwM4tG0kgzghnRaEgMI2aWLNlisMVMlgxa73Wv2tvJ85xz ...
我试着用这个正则表达式:
iframeContents.match(/<string[^>]*>(.*?)<\/string>/i);
,但我不断收到字符串变量并没有更多的XML之一:
<string xmlns="http://tempuri.org/">iVBORw0KGgoAAAANSUhEUgAAAU0AAAD6CAYAAAAlSBW9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhehP1lnB...
答
尝试如果不存在匹配
iframeContents.match(/<string[^>]*>([\s\S]*?)<\/string>/i)[1]
匹配返回一个数组,或null
。
数组的第一个元素是整个匹配,第二个元素是由第一个捕获组()
匹配的文本。
.
与换行符不匹配,但[\s\S]
。
+0
非常感谢你!它完美的作品! – 2013-03-19 18:43:01
答
使用解析XML的方法从here
var parseXml;
if (typeof window.DOMParser != "undefined") {
parseXml = function(xmlStr) {
return (new window.DOMParser()).parseFromString(xmlStr, "text/xml");
};
} else if (typeof window.ActiveXObject != "undefined" &&
new window.ActiveXObject("Microsoft.XMLDOM")) {
parseXml = function(xmlStr) {
var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlStr);
return xmlDoc;
};
} else {
throw new Error("No XML parser found");
})
var xml = parseXml("...");
var text = xml.documentElement.firstChild.nodeValue;
感觉就像它的时间来链接到最有名的答案在SO,再 - > http://stackoverflow.com/questions/1732348/regex-match- open-tags-except-xhtml-self-contained-tags – adeneo 2013-03-19 18:06:16
如果这是在浏览器中,为什么不让浏览器为[你]做这件事(http://stackoverflow.com/questions/649614/xml-parsing-of-一个变量串式的JavaScript)。如果它的nodejs使用[libary](https://github.com/polotek/libxmljs/wiki/Element) – user1937198 2013-03-19 18:12:36
感谢您的回复。我使用mootools,我不知道.find的等价物。我在文档中看不到任何东西 – 2013-03-19 18:20:23