我正在尝试从加载到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引用输入到网页中?
答案 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上)。