Tag: parsing

parsingPlist(NSString)到NSDictionary

所以我有一个plist结构string,dynamic获取(而不是从文件系统)。 我将如何将此string转换为NSDictionary。 我已经尝试转换它的NSData,然后到NSPropertyListSerialization与NSDictionary,但它会返回“[NSCFString objectAtIndex::无法识别的select器发送到实例0x100539f40”当我试图访问NSDictionary,显示我的字典没有成功创build。 NSString的例子(这是plist数据): <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Key1</key> <dict> <key>Test1</key> <false/> <key>Key2</key> <string>Value2</string> <key>Key3</key> <string>value3</string> </dict> </dict> </plist> 谢谢!

用于Java的HTML / XMLparsing器

什么HTMLparsing器具有以下function: 快速 线程安全 可靠和无bug 分析HTML和XML 处理错误的HTML 有一个DOM实现 支持HTML4,JavaScript和CSS标签 比较简单的,面向对象的API 你认为什么parsing器更好? 谢谢。

如何从数字中读取值作为单词?

众所周知,数字可以用数字来表示,也可以用名字来表示。 虽然有很多例子可以把123转换为123,但是我找不到如何将其转换成另一种方式的好例子。 一些注意事项: 基数/名义或序数:“一”和“第一” 常见的拼写错误:“四十”/“四十” 数百/数千:2100 – >“二百”,还有“二千一百” 分隔符:“十一五二”,还有“一百五十二”或“十一五二”,还有什么 colloqialisms:“三十多岁” 片段:“三分之一”,“五分之二” 俗名:“一打”,“一半” 还有可能有更多的警告,可能还没有列出。 假设algorithm需要非常强大,甚至可以理解拼写错误。 我应该阅读哪些字段/论文/研究/algorithm来学习如何编写这些内容? 信息在哪里? PS:我最后的parsing器实际上应该理解3种不同的语言,英语,俄语和希伯来语。 也许在稍后的阶段会增加更多的语言。 希伯来文也有男/女数字,像“一个男人”和“一个女人”有不同的“一”,“ehad”和“ahat”。 俄罗斯也有其自身的一些复杂性。 Google在这方面做得很好,例如: http://www.google.com/search?q=two+thousand+and+one+hundred+plus+five+dozen+and+four+fifths+in+decimal (反过来也是http://www.google.com/search?q=999999999999+in+english )

提升精神语义动作参数

在这篇关于助推精神语义行为的文章中提到了这一点 实际上还有两个参数被传递:parsing器上下文和一个布尔型“命中”参数的引用。 parsing器上下文只有在语义动作附加到规则的右手边时才有意义。 我们将很快看到更多的信息。 布尔值可以在语义操作中设置为false,使回溯中的匹配无效,从而使parsing器失败。 一切正常,但我一直在试图find一个例子传递一个函数对象作为语义行动,使用其他参数(parsing器上下文和命中布尔),但我还没有find任何。 我很希望看到一个使用常规函数或函数对象的例子,因为我几乎可以挖掘凤凰巫术

Python:从string中删除\ xa0?

我目前使用美丽的汤来parsing一个HTML文件,并调用get_text() ,但似乎我留下了很多\ xa0代表空格的Unicode。 有没有一种有效的方法来删除所有在Python 2.7中,并将其更改为空格? 我想更普遍的问题是,有没有办法删除Unicode格式? 我尝试使用: line = line.replace(u'\xa0',' ') ,正如另一个线程所build议的那样,但是把\ xa0改成了u,所以现在我到处都是“u”。 ): 编辑:这个问题似乎是通过str.replace(u'\xa0', ' ').encode('utf-8') ,但只是做.encode('utf-8')没有replace()似乎导致它甚至吐出更奇怪的字符,例如\ xc2。 任何人都可以解释吗?

你将如何去parsingMarkdown?

你可以在这里find这个语法。 下载后的源代码是用Perl编写的,我没有打算这么做。 它是正规expression式,它依靠MD5哈希来逃避某些字符。 有什么是错的! 我即将对Markdown的parsing器进行硬编码。 这是什么经验? 如果您对Markdown的实际parsing没有任何意义,请将时间留给我。 (这可能听起来很刺耳,但是,我正在寻找洞察力,而不是解决scheme,即第三方库)。 为了帮助一些答案,正则expression式是为了识别模式 ! 不要分析整个语法。 人们认为这样做是foobar。 如果您考虑Markdown,它基本上是基于段落的概念。 因此,合理的做法可能是将投入分成几段。 段落有很多种,例如标题,文字,列表,引号和代码。 因此,挑战在于确定这些段落以及它们在什么情况下发生。 一旦我发现它值得分享,我会回来的解决scheme。

使用Object Mapperparsing嵌套的字典数组

我parsing一个web api响应,这是一个字典数组。 每个字典都有一个嵌套的字典数组。 我如何parsing它? Pl提供了一些代码示例。 我的答复是, ( { FilingStatusId = 0; FormName = "MISC"; OrderId = 0; RecipientList = ( { FilingStatusId = 0; FormId = 1; FormName = "MISC"; PayerId = 26142; PayerName = bsbbshs; RecipientId = 221438; RecipientName = tests; ReturnId = 209998; UserId = 0; }, { FilingStatusId = 0; FormId = […]

获取给定选项的INI文件的行号的跨平台方法

寻找一些C ++库(比如boost :: program_options),它能够返回INI文件的行号,在这里find给定的选项或部分。 用例: 我要求图书馆在“[SSS]”部分find价值“vvv”。 库返回find“[SSS]”部分中的“vvv”的行号,或-1。 它使我有能力说“第55行:vvv必须<256”。 我迭代INI文件的部分和validation他们的名字。 当发现一些狂野的部分时,我会说:“第55行:[哈哈哈]部分是未知的”。 更新:我知道“INI比猛犸象年长”,但目前我必须将大型windows项目移植到跨平台,不能很快摆脱.ini文件。

PHP的HTML DomDocument getElementById问题

这里有一点新的PHPparsing,但我似乎无法得到PHP的DomDocument返回显然是一个可识别的节点。 加载的HTML将来自'networking,所以不一定能保证XML合规性,但我尝试以下: <?php header("Content-Type: text/plain"); $html = '<html><body>Hello <b id="bid">World</b>.</body></html>'; $dom = new DomDocument; $dom->preserveWhiteSpace = false; $dom->validateOnParse = true; /*** load the html into the object ***/ $dom->loadHTML($html); var_dump($dom); $belement = $dom->getElementById("bid"); var_dump($belement); ?> 尽pipe我没有收到任何错误,但我只收到以下内容: object(DOMDocument)#1 (0) { } NULL 我应该不能查找<b>标签,因为它确实有一个ID?

将分析器分配给自动variables

灵魂分析器是不是要用于auto ? 一个简单的parsing器在传递给内联函数qi::parse()时可以正常工作,但如果通过一个autovariables传递,则会崩溃。 #include <cstdio> #include <string> #include <boost/spirit/include/qi.hpp> using namespace std; namespace qi = boost::spirit::qi; int main() { string line = "[z]"; auto bracketed_z = '[' >> +qi::char_('z') >> ']'; auto p = line.cbegin(); printf("%d", qi::parse(p, line.cend(), '[' >> +qi::char_('z') >> ']')); // Works p = line.cbegin(); printf("%d", qi::parse(p, line.cend(), bracketed_z)); // Crashes } […]