자식 속성을 기반으로 XDocument를 필터링하고 부모 구조를 유지하는 방법은 무엇입니까?

비트 맨

xml 트리는 속성을 기반으로 필터링해야합니다. 하위 요소는 상위 요소와 이름이 같습니다. 요소 표시 기준이 충족되면이 요소와 모든 상위 구조를 표시해야합니다.

예를 들어 xml은 다음과 같습니다 (깊이 수준은 무작위 임).

<Root>
    <Foo attr="xyz 123"></Foo>
    <Foo attr="abc 111"></Foo>
    <Foo attr="abc 222">
        <Foo attr="abc 111"></Foo>
        <Foo attr="abc 222">
            <Foo attr="xyz 123"></Foo>
        </Foo>
    </Foo>
</Root>

필터링 기준은 "attr"속성에 "xyz"텍스트가 포함되어 있다는 것입니다. 필터링 후 xml은 다음과 같아야합니다.

<Root>
    <Foo attr="xyz 123"></Foo>
    <Foo attr="abc 222">
        <Foo attr="abc 222">
            <Foo attr="xyz 123"></Foo>
        </Foo>
    </Foo>
</Root>

XDocument트리 구조를 유지하는 데 사용됩니다 (나중에 XDocument_instance.Elements()WPF 트 리뷰에 연결됨).

다음 Linq 명령은 첫 번째 요소 수준 (루트 이후) 만 정렬합니다.

var Elements = from el in xdoc.Root.Elements()
               where
                   el.Attribute("attr").Value.Contains("xyz")
               select el

설명 된 필터링을 적용하는 Linq 명령 (또는 foreach 루프)을 만드는 방법은 무엇입니까?

편집 : 선호하는 솔루션은 원본 데이터를 수정하지 않고 뷰에 대해 다른 것을 만듭니다 (예 : Linq 쿼리).

// first make a list of elements that are to be removed
var forRemoval = new List<XElement>();
foreach (var element in xmlDoc.Descendants())
{
    if (!element.DescendantsAndSelf().Any(e => e.Attribute("attr") != null && e.Attribute("attr").Value.Contains("xyz")))
    {
        forRemoval.Add(element);
    }
}

// then remove the elements
foreach (var xElement in forRemoval)
{
    xElement.Remove();
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

부모를 기반으로 자식 구성 요소의 높이를 동적으로 조정하는 방법은 무엇입니까?

분류에서Dev

유형이 부과 된 조건 자 컬렉션을 기반으로 개체를 필터링하는 방법은 무엇입니까?

분류에서Dev

부모 구성 요소를 통해 필터링 될 때 자식 구성 요소의 상태를 유지하는 방법은 무엇입니까?

분류에서Dev

일부 필드를 기반으로 객체 배열을 필터링하는 방법은 무엇입니까?

분류에서Dev

모델 데이터를 기반으로 양식 입력을 받아들이고 원본 모델 객체를 유지하는 방법은 무엇입니까?

분류에서Dev

Django : 양식의 비 영구 필드를 기반으로 모델 / 양식을 사용자 지정 저장하는 방법은 무엇입니까?

분류에서Dev

요소를 기반으로 부동 소수점 목록을 필터링하는 방법은 무엇입니까?

분류에서Dev

React의 부모 구성 요소에 조건부로 자식 구성 요소를 추가하는 방법은 무엇입니까?

분류에서Dev

XML 노드의 값을 기반으로 자식 개체를 부모 목록 (예 : List <Parent>)으로 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

Powershell을 통해 그룹 구성원 자격을 기반으로 NTFS DAC (조건부 액세스)를 관리하는 방법은 무엇입니까?

분류에서Dev

객체 배열에서 속성의 첫 번째 문자를 기반으로 객체 배열을 필터링하는 방법은 무엇입니까?

분류에서Dev

Pyspark : 문자열 및 접두사 부재를 기반으로 데이터 프레임을 필터링하는 방법은 무엇입니까?

분류에서Dev

부모 후에 자식 구성 요소를 초기화하는 방법은 무엇입니까?

분류에서Dev

R에 의지하지 않고 유닉스 도구를 사용하여 그룹화의 일부 통계를 기반으로 행을 필터링하는 방법은 무엇입니까?

분류에서Dev

Angular 2의 자식 구성 요소 이벤트에서 부모 구성 요소의 로컬 참조를 트리거하는 방법은 무엇입니까?

분류에서Dev

여러 모델을 기반으로 조건부를 설정하는 방법은 무엇입니까?

분류에서Dev

jQuery를 사용하여 자식을 부모의 부모로 만드는 방법은 무엇입니까?

분류에서Dev

React : 다른 유형의 자식 구성 요소를 부모 구성 요소에 동적으로 추가하는 방법은 무엇입니까?

분류에서Dev

특정 값을 기반으로 데이터 프레임을 필터링하고 팬더를 사용하여 고유 식별자에 대한 다른 모든 값을 유지하는 방법이 있습니까?

분류에서Dev

R에서 대체하지 않고 샘플링을 기반으로 가능한 모든 벡터를 생성하는 방법은 무엇입니까?

분류에서Dev

부모-자식-부모 범위를 부모 내에 유지하는 방법은 무엇입니까?

분류에서Dev

데이터 속성으로 선택 상자를 필터링하는 방법은 무엇입니까?

분류에서Dev

이유 반응 구성 요소를 조건부로 렌더링하는 방법은 무엇입니까?

분류에서Dev

.data ()를 사용하여 기존 자식을 계산하지 않고 부모에 2 명의 자식을 추가하는 방법은 무엇입니까?

분류에서Dev

이 예제에서 자식 차원을 기반으로 부모 div 크기 조정 높이를 만드는 방법은 무엇입니까?

분류에서Dev

이 예제에서 자식 차원을 기반으로 부모 div 크기 조정 높이를 만드는 방법은 무엇입니까?

분류에서Dev

이 예제에서 자식 차원을 기반으로 부모 div 크기 조정 높이를 만드는 방법은 무엇입니까?

분류에서Dev

JAVA에서 XML 문자열에 새 속성을 추가하는 방법은 무엇입니까? 조건 : 부모 키를 기반으로하며 구문 분석 또는 SAX를 수행해야하는 경우 JAVA 내부 API 만 사용할 수 있습니다.

분류에서Dev

PHP를 사용하여 자식 속성을 기반으로 XML 태그를 제거하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    부모를 기반으로 자식 구성 요소의 높이를 동적으로 조정하는 방법은 무엇입니까?

  2. 2

    유형이 부과 된 조건 자 컬렉션을 기반으로 개체를 필터링하는 방법은 무엇입니까?

  3. 3

    부모 구성 요소를 통해 필터링 될 때 자식 구성 요소의 상태를 유지하는 방법은 무엇입니까?

  4. 4

    일부 필드를 기반으로 객체 배열을 필터링하는 방법은 무엇입니까?

  5. 5

    모델 데이터를 기반으로 양식 입력을 받아들이고 원본 모델 객체를 유지하는 방법은 무엇입니까?

  6. 6

    Django : 양식의 비 영구 필드를 기반으로 모델 / 양식을 사용자 지정 저장하는 방법은 무엇입니까?

  7. 7

    요소를 기반으로 부동 소수점 목록을 필터링하는 방법은 무엇입니까?

  8. 8

    React의 부모 구성 요소에 조건부로 자식 구성 요소를 추가하는 방법은 무엇입니까?

  9. 9

    XML 노드의 값을 기반으로 자식 개체를 부모 목록 (예 : List <Parent>)으로 역 직렬화하는 방법은 무엇입니까?

  10. 10

    Powershell을 통해 그룹 구성원 자격을 기반으로 NTFS DAC (조건부 액세스)를 관리하는 방법은 무엇입니까?

  11. 11

    객체 배열에서 속성의 첫 번째 문자를 기반으로 객체 배열을 필터링하는 방법은 무엇입니까?

  12. 12

    Pyspark : 문자열 및 접두사 부재를 기반으로 데이터 프레임을 필터링하는 방법은 무엇입니까?

  13. 13

    부모 후에 자식 구성 요소를 초기화하는 방법은 무엇입니까?

  14. 14

    R에 의지하지 않고 유닉스 도구를 사용하여 그룹화의 일부 통계를 기반으로 행을 필터링하는 방법은 무엇입니까?

  15. 15

    Angular 2의 자식 구성 요소 이벤트에서 부모 구성 요소의 로컬 참조를 트리거하는 방법은 무엇입니까?

  16. 16

    여러 모델을 기반으로 조건부를 설정하는 방법은 무엇입니까?

  17. 17

    jQuery를 사용하여 자식을 부모의 부모로 만드는 방법은 무엇입니까?

  18. 18

    React : 다른 유형의 자식 구성 요소를 부모 구성 요소에 동적으로 추가하는 방법은 무엇입니까?

  19. 19

    특정 값을 기반으로 데이터 프레임을 필터링하고 팬더를 사용하여 고유 식별자에 대한 다른 모든 값을 유지하는 방법이 있습니까?

  20. 20

    R에서 대체하지 않고 샘플링을 기반으로 가능한 모든 벡터를 생성하는 방법은 무엇입니까?

  21. 21

    부모-자식-부모 범위를 부모 내에 유지하는 방법은 무엇입니까?

  22. 22

    데이터 속성으로 선택 상자를 필터링하는 방법은 무엇입니까?

  23. 23

    이유 반응 구성 요소를 조건부로 렌더링하는 방법은 무엇입니까?

  24. 24

    .data ()를 사용하여 기존 자식을 계산하지 않고 부모에 2 명의 자식을 추가하는 방법은 무엇입니까?

  25. 25

    이 예제에서 자식 차원을 기반으로 부모 div 크기 조정 높이를 만드는 방법은 무엇입니까?

  26. 26

    이 예제에서 자식 차원을 기반으로 부모 div 크기 조정 높이를 만드는 방법은 무엇입니까?

  27. 27

    이 예제에서 자식 차원을 기반으로 부모 div 크기 조정 높이를 만드는 방법은 무엇입니까?

  28. 28

    JAVA에서 XML 문자열에 새 속성을 추가하는 방법은 무엇입니까? 조건 : 부모 키를 기반으로하며 구문 분석 또는 SAX를 수행해야하는 경우 JAVA 내부 API 만 사용할 수 있습니다.

  29. 29

    PHP를 사용하여 자식 속성을 기반으로 XML 태그를 제거하는 방법은 무엇입니까?

뜨겁다태그

보관