Cocoa从DOMDocument获取输入数据

时间:2013-01-29 22:30:11

标签: c# dom domdocument monomac

我正在尝试从加载到Cocoa WebView控件中的文档中获取DOM中的数据,但似乎元素的值为空。我正在使用MonoMac。我正在使用的代码(C#)如下:

var document = WebBrowser.MainFrameDocument;

if (document != null)
{
    // GetAllChildren is a recursive extension function that iterates through a DomNode's
    // ChildNodes property and returns a list of all of them
    var textareaElements = document.GetAllChildren().OfType<DomHtmlElement>().Where(node => node.Name.Equals("TEXTAREA"));
    foreach (var textarea in textareaElements)
    {
        var value = textarea.Value; // this is always ""
    }
}

我是否需要做些什么来确保我必须将DOM引用输入到网页中?

2 个答案:

答案 0 :(得分:0)

这似乎是MonoMac实施中的一个错误:https://bugzilla.xamarin.com/show_bug.cgi?id=7754

更新:有一个有效的提款请求可以解决此问题:https://github.com/mono/monomac/pull/109

答案 1 :(得分:0)

我很少使用DOM,但似乎返回的节点属于Element类型,而nodeValue只返回Text类型的字符串。

Element您可以尝试TextContent,它会返回您提到的错误报告的预期值。

或者您可以访问Text节点(在您的情况下它将是textarea.FirstChild.Value),这也应该返回您期望的值。

<强>更新

错误报告中的原始测试用例未显示真正的问题。提供了一个更新的测试用例,现在修复available(在github monomac repo上)。