如何解析HTML/XML并从中提取信息?
我有简单的HTML:
<h2>Title</h2><br>
<p>description here</p>
Run Code Online (Sandbox Code Playgroud)
我想在其中显示HTML样式的文本TextView.这该怎么做?
我有需要解析的XML文档和/或我需要构建XML文档并将它们写入文本(文件或内存).由于C++标准库没有此库,我应该使用什么?
注意:这是一个明确的,C++ - FAQ风格的问题.所以,是的,它与其他人重复.我不是简单地适应其他问题,因为他们倾向于要求更具体的东西.这个问题更通用.
我阅读了一些关于XML解析器的文章,并且遇到了SAX和DOM.
SAX是基于事件的,DOM是树模型 - 我不理解这些概念之间的差异.
根据我的理解,基于事件意味着某种事件发生在节点上.就像当单击特定节点时,它将给出所有子节点,而不是同时加载所有节点.但是在DOM解析的情况下,它将加载所有节点并创建树模型.
我的理解是否正确?
请纠正我如果我错了或以更简单的方式向我解释基于事件和树模型.
我通过套接字接收XML字符串,并希望将它们转换为C#对象.
消息的形式如下:
<msg>
<id>1</id>
<action>stop</action>
</msg>
Run Code Online (Sandbox Code Playgroud)
我是.Net的新手,并不确定执行此操作的最佳做法.我之前使用过JAXB for Java,并且不确定是否有类似的东西,或者是否会以不同的方式处理.
我正在寻找一个用于Python的HTML Parser模块,它可以帮助我以Python列表/字典/对象的形式获取标签.
如果我有一份表格的文件:
<html>
<head>Heading</head>
<body attr1='val1'>
<div class='container'>
<div id='class'>Something here</div>
<div>Something else</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
然后它应该给我一种方法来通过HTML标签的名称或ID访问嵌套标签,这样我基本上可以让它给我div标签中class='container'包含的body标签中的内容/文本,或类似的东西.
如果您使用过Firefox的"Inspect element"功能(查看HTML),您就会知道它以一种漂亮的嵌套方式为您提供所有标记,就像树一样.
我更喜欢内置模块,但可能会有点太多.
我在Stack Overflow和互联网上的一些博客上经历了很多问题,其中大多数都建议使用BeautifulSoup或lxml或HTMLParser,但其中很少有人详细介绍了这些功能,最后只是讨论哪一个更快/更有效.
我有以下XML,我想用Python解析ElementTree:
<rdf:RDF xml:base="http://dbpedia.org/ontology/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns="http://dbpedia.org/ontology/">
<owl:Class rdf:about="http://dbpedia.org/ontology/BasketballLeague">
<rdfs:label xml:lang="en">basketball league</rdfs:label>
<rdfs:comment xml:lang="en">
a group of sports teams that compete against each other
in Basketball
</rdfs:comment>
</owl:Class>
</rdf:RDF>
Run Code Online (Sandbox Code Playgroud)
我想找到所有owl:Class标签,然后提取其中所有rdfs:label实例的值.我使用以下代码:
tree = ET.parse("filename")
root = tree.getroot()
root.findall('owl:Class')
Run Code Online (Sandbox Code Playgroud)
由于命名空间,我收到以下错误.
SyntaxError: prefix 'owl' not found in prefix map
Run Code Online (Sandbox Code Playgroud)
我尝试在http://effbot.org/zone/element-namespaces.htm上阅读该文档,但由于上述XML具有多个嵌套命名空间,因此我仍然无法正常工作.
请告诉我如何更改代码以查找所有owl:Class标签.
我之前使用过XML Parser,虽然它工作正常,但我对它一般不满意,感觉就像我在使用基本功能的东西时使用变通方法.
我最近看过SimpleXML,但我还没有尝试过.它更简单吗?两者有哪些优点和缺点?你用过的其他任何解析器?
我正在研究我的这个个人项目,只是为了好玩,我想阅读一个xml文件,该文件位于http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml 并解析xml和用它来转换货币之间的价值.
到目前为止,我已经提出了下面的代码,这是非常基本的,以便读取xml,但我得到以下错误.
XMLHttpRequest无法加载****.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此,不允许来源" http://run.jsbin.com "访问.
$(document).ready(
function() {
$.ajax({
type: 'GET',
url: 'http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml',
dataType: 'xml',
success: function(xml){
alert('aaa');
}
});
}
);
Run Code Online (Sandbox Code Playgroud)
我没有看到我的代码有任何问题所以我希望有人可以指出我的代码错误,以及我如何解决它.
xml-parsing ×10
xml ×4
html-parsing ×2
parsing ×2
php ×2
python ×2
ajax ×1
android ×1
c# ×1
c++ ×1
c++-faq ×1
cors ×1
domparser ×1
elementtree ×1
html ×1
javascript ×1
jquery ×1
node.js ×1
saxparser ×1
textview ×1