我正在使用dotnetrdf并试图用NTriplesParser解析一些三元组。我有自己的处理程序RobHandler,我依次处理每个三元组。
public class RobHandler : BaseRdfHandler
{
protected override bool HandleTripleInternal(Triple t)
{
string predicateUrl = ((BaseUriNode)(t.Predicate)).Uri.AbsoluteUri;
string value = t.Object.ToString();
}
}
这很好但我想让对象减去语言。我的对象看起来像林肯" @。我显然可以编写一些代码来删除@en位,但我宁愿使用一些库代码而不是我自己那些硬编码的字符串,比如@en。要做到这一点,我想我需要创建一个LiteralNode,但似乎没有办法从一个字符串中获取(我的变量值)到LiteralNode。
如何从对象字符串中仅提取文本值?
答案 0 :(得分:1)
其实我觉得我自己有答案:
if (t.Object.NodeType == NodeType.Literal)
{
var node = (ILiteralNode)t.Object;
}