1

我正在尝试从加载到 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 引用?

4

2 回答 2

0

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

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

于 2013-01-31T15:32:58.747 回答
0

我很少需要使用 DOM,但似乎返回的节点是类型Element的,并且nodeValue只会返回一个Text类型的字符串。

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

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

更新

错误报告中的原始测试用例没有显示真正的问题。提供了一个较新的测试用例,现在可以使用修复程序(在 github monomac repo 上)。

于 2013-01-31T21:40:47.133 回答