1
다음 XML 문서가 있다고 가정 해 보겠습니다.LINQ로 XML 문서를 쿼리하는 방법?
<response>
<businessEntity>
<ABN>
<identifierValue></identifierValue>
<isCurrentIndicator></isCurrentIndicator>
<replacedIdentifierValue xsi:nil="true" />
<replacedFrom></replacedFrom>
</ABN>
<entityStatus>
<entityStatusCode> </entityStatusCode>
<effectiveFrom></effectiveFrom>
<effectiveTo></effectiveTo>
</entityStatus>
<entityType>
<entityTypeCode> </entityTypeCode>
<entityDescription> </entityDescription>
</entityType>
<goodsAndServicesTax>
<effectiveFrom></effectiveFrom>
<effectiveTo></effectiveTo>
</goodsAndServicesTax>
<legalName>
<givenName> </givenName>
<otherGivenName />
<familyName> </familyName>
<effectiveFrom></effectiveFrom>
<effectiveTo></effectiveTo>
</legalName>
<mainBusinessPhysicalAddress>
<stateCode> </stateCode>
<postcode></postcode>
<effectiveFrom></effectiveFrom>
<effectiveTo></effectiveTo>
</mainBusinessPhysicalAddress>
</businessEntity>
</response>
예를 들어 givenName과 familyName을 얻으려면 다음과 같이하면됩니다.
var businesses = doc.Descendants(ns + "businessEntity")
.Elements(ns + "legalName")
.Select(node => new
{
effectiveFrom = node.Element(ns + "effectiveFrom").Value,
givenName = node.Element(ns + "givenName").Value,
familyName = node.Element(ns + "familyName").Value,
}).ToList();
그러면 다음을 사용하여 테이블을 채울 수 있습니다. , 나는 전체 문서를 쿼리하는 방법을 잘 모르겠다. 예를 들어 ABN과 entityType과 같은 원하는 모든 노드를 얻는다. 내가 목록을 만들고 각 형제 코드의 일부를 legalName에 복제해야합니까?
미리 감사드립니다.
감사합니다. 예상대로 작동하지만 값이 비어 있으면 오류가 발생합니다. 어떻게 처리해야합니까? – Nick
@Nick : 어떤 부분이 "비어 있음"과 구체적으로 "비어 있음"(완전히 누락 되었습니까? 현재는 빈 문자열이 포함되어 있음)을 의미합니다. 'foo.Element (...). Value '를'(string) foo.Element (...)'로 변경해보십시오. 그래도 작동하지 않는다면 빈 내용과 비어있는 내용을 자세히 알려주십시오. 가장 간단한 방법은 실패한 XML 문서, 시도한 정확한 코드 및 오류 메시지를 게시하는 것입니다. 할 수 없다면 말로 설명 할 수 있습니다. –
예를 들어 givenname에 값이 없으면 nullreferenceexception이 코드 – Nick