我需要从XML分组"Document"值.问题是因为键值(productType)可以是多个.
这是XML:
<Documents>
<Document>
<id>1</id>
<title>title1</title>
<productTypes>
<productType id="x1">Capital Costs Analysis Forum - Brazil</productType>
<productType id="x3">Environmental, Health and Safety & Sustainability</productType>
</productTypes>
</Document>
<Document>
<id>2</id>
<title>title2</title>
<productTypes>
<productType id="x1">Capital Costs Analysis Forum - Brazil</productType>
</productTypes>
</Document>
<Document>
<id>3</id>
<title>title3</title>
<productTypes>
<productType id="x3">Environmental, Health and Safety & Sustainability</productType>
</productTypes>
</Document>
<Document>
<id>4</id>
<title>title4</title>
<productTypes>
<productType id="x2">Defense, Risk & Security</productType>
</productTypes>
</Document>
Run Code Online (Sandbox Code Playgroud)
这就是我尝试的:
var documents = from document in some.Descendants("Document")
group document by (string)document
.Element("productTypes")
.Elements("productType")
.First() into docGroup
select docGroup;
Run Code Online (Sandbox Code Playgroud)
只有有一个productType元素,我的代码才有效.如果productType有多个值,如何更改我的代码?
我有这样的 HTML(简化):
<ul>
<li><a id="1" onclick="removeItself(1)" href="#">first</a></li>
<li><a id="2" onclick="removeItself(2)" href="#">second</a></li>
</ul>
<input type="text"></input>
Run Code Online (Sandbox Code Playgroud)
如果点击其中一个链接,它将被删除。就我而言,删除后,整个列表将再次呈现。
有很多问题,但一般是如果具有焦点的元素被删除,在哪里设置焦点?
例如,如果第二个列表元素被删除或所有元素都被删除,焦点应该设置在哪里?
在这种情况下,什么解决方案可以通过网络访问?将焦点始终设置在列表中的第一项是否可以接受,但如果删除所有项目以将焦点设置到下一个(输入)或上一个元素?
在 IE 中,焦点将被重置,并且将从页面的开头开始。
这是与本页上的示例类似的示例。
public interface IOperation
{
string OperationId { get; }
}
public interface IScopedOperation1 : IOperation { }
public interface IScopedOperation2 : IOperation { }
public class DefaultOperation : IScopedOperation1, IScopedOperation2
{
public string OperationId { get; } = Guid.NewGuid().ToString()[^4..];
}
public class OperationLogger
{
private readonly IScopedOperation1 _scopedOperation1;
private readonly IScopedOperation2 _scopedOperation2;
public OperationLogger(
IScopedOperation1 op1, IScopedOperation2 op2) =>
(_scopedOperation1, _scopedOperation2) = (op1, op2);
public void LogOperations()
{
Console.WriteLine($"Operation1: [ {_scopedOperation1.OperationId} ]");
Console.WriteLine($"Operation2: [ {_scopedOperation2.OperationId} ]");
}
} …Run Code Online (Sandbox Code Playgroud)