C # 중첩 노드에 대한 XML 내부 텍스트 가져 오기 시도

로저 레오나드

XMl 문서를 성공적으로로드하고 노드를 순회 할 수 있습니다. 원하는 노드를 얻으면 값 설정을 시작합니다. 중첩 노드는 어떻게 처리합니까?

다음은 xml입니다.

<incident>
<id>1234</id>
<number>5678</number>
<name>This is a name</name>
<state>Awaiting Input</state>
<priority>Medium</priority>
<category>
    <id>99999</id>
    <name>Applications</name>
    <default_tags>applications</default_tags>
    <parent_id nil="true" />
    <default_assignee_id nil="true" />
</category>

다음은 몇 가지 C #입니다.

   id = node.SelectSingleNode("id").InnerText;  //works fine
   number = node.SelectSingleNode("number").InnerText;  //works fine

   name = node.SelectSingleNode("name").InnerText;  //works fine
   descHTML = node.SelectSingleNode("description").InnerText;  //works fine
   desc = node.SelectSingleNode("description_no_html").InnerText;  //works fine
   state = node.SelectSingleNode("state").InnerText;  //works fine
   priority = node.SelectSingleNode("priority").InnerText;  //works fine

   catagoryID = node.SelectSingleNode("category/id").InnerText; // null reference error
   catagoryName = node.SelectSingleNode("category/name").InnerText; // null reference error
   catagoryTags = node.SelectSingleNode("category/default_tags").InnerText; // null reference error
Jawad

존재하거나 존재하지 않을 수있는 다른 요소를 읽는 경우 메서드 ?.뒤에 사용 하십시오 SelectSingleNode. 이렇게하면 오류가 발생하지 않습니다 Object Reference Not Set to an Instance of an object.

?. 본질적으로 다음 방법 또는 속성을 평가하기 전에 값이 있는지 확인합니다.

string xml = @"<incident>
<id>1234</id>
<number>5678</number>
<name>This is a name</name>
<state>Awaiting Input</state>
<priority>Medium</priority>
<category>
    <id>99999</id>
    <name>Applications</name>
    <default_tags>applications</default_tags>
    <parent_id nil=""true"" />
    <default_assignee_id nil=""true"" />
</category>
</incident>";

        XmlDocument doc = new XmlDocument();
        doc.LoadXml(xml);
        var node = doc.DocumentElement;

        var id = node.SelectSingleNode("id")?.InnerText;  //works fine
       var number = node.SelectSingleNode("number")?.InnerText;  //works fine

       var name = node.SelectSingleNode("name")?.InnerText;  //works fine
       var descHTML = node.SelectSingleNode("description")?.InnerText;  //ERRORS because there is no description.
       var desc = node.SelectSingleNode("description_no_html")?.InnerText;  //works fine
       var state = node.SelectSingleNode("state")?.InnerText;  //works fine
       var priority = node.SelectSingleNode("priority")?.InnerText;  //works fine

       var catagoryID = node.SelectSingleNode("//category/id")?.InnerText; // null reference error
       var catagoryName = node.SelectSingleNode("//category/name")?.InnerText; // null reference error
       var catagoryTags = node.SelectSingleNode("//category/default_tags")?.InnerText; // null reference error

        Console.WriteLine($"name: {name}");
        Console.WriteLine($"descHTML: {descHTML}");
        Console.WriteLine($"desc: {desc}");
        Console.WriteLine($"state: {state}");
        Console.WriteLine($"priority: {priority}");
        Console.WriteLine($"catagoryID: {catagoryID}");
        Console.WriteLine($"catagoryName: {catagoryName}");
        Console.WriteLine($"catagoryTags: {catagoryTags}");

출력 출력

name: This is a name
descHTML: 
desc: 
state: Awaiting Input
priority: Medium
catagoryID: 99999
catagoryName: Applications
catagoryTags: applications

#dotnetfiddle의 코드

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C #을 사용하여 XML에서 중첩 된 요소의 텍스트 가져 오기

분류에서Dev

루프없이 노드가 하나만있는 XML 문자열에서 내부 텍스트 가져 오기

분류에서Dev

노드 내부에 적절하지 않은 xml에서 요소 텍스트 가져 오기

분류에서Dev

WPF C # ListBoxItem 내부의 Textblock에서 텍스트 가져 오기

분류에서Dev

둘째 자녀에 대한 내부 텍스트 값 가져 오기

분류에서Dev

perl XML :: LibXML 직접 자식 텍스트 노드 내용 가져 오기

분류에서Dev

자식 노드 (또는 이와 유사한 것)를 포함하는 XML 노드에 대한 텍스트 가져 오기

분류에서Dev

XML 노드 값 및 모든 중첩 열 노드 가져 오기

분류에서Dev

XML에서 내부 노드의 속성 가져 오기

분류에서Dev

특정 노드에 대한 xml 속성 값 가져 오기

분류에서Dev

모든 XML 노드에 대한 경로 가져 오기

분류에서Dev

문자열로 가져올 때 다른 문자와 함께 '\'가있는 xml 노드에서 내부 텍스트를 가져 오는 방법

분류에서Dev

스칼라 : 내부 유형에 대한 TypeTag 가져 오기

분류에서Dev

C #의 Excel 셀에서 텍스트 상자에 대한 값 가져 오기

분류에서Dev

Poco XML-노드 내부 XML 가져 오기

분류에서Dev

Angular2 / 4 http. "this"에 대한 중첩 액세스 가져 오기

분류에서Dev

중첩 된 formArray 내에서 컨트롤 가져 오기

분류에서Dev

여러 클래스 내에 중첩 된 값 가져 오기

분류에서Dev

C # XML 선택 노드에 노드 포함 내부 텍스트 포함 텍스트 포함

분류에서Dev

링크 내부의 텍스트에 대한 XML 도관 구문 분석

분류에서Dev

대부분의 자식 SimpleXMLObject로 xml 노드 가져 오기

분류에서Dev

중첩 된 JMenuItems 컨텍스트 메뉴에서 선택한 셀 행 가져 오기 (Java Swing)

분류에서Dev

jquery의 여러 중첩 자식 요소에서 첫 번째 표시 텍스트 가져 오기

분류에서Dev

텍스트 상자에서 선택한 연도 가져 오기

분류에서Dev

내부 중첩 클래스에 대한 뷰 XML의 인플레이션 예외

분류에서Dev

선택한 요소 jQuery 내에서 텍스트 가져 오기

분류에서Dev

customtableview 텍스트 필드에 대한 indexPath 가져 오기

분류에서Dev

내부 중첩 사전 가져 오기

분류에서Dev

중첩 된 자식 노드 자바 스크립트의 텍스트 가져 오기

Related 관련 기사

  1. 1

    C #을 사용하여 XML에서 중첩 된 요소의 텍스트 가져 오기

  2. 2

    루프없이 노드가 하나만있는 XML 문자열에서 내부 텍스트 가져 오기

  3. 3

    노드 내부에 적절하지 않은 xml에서 요소 텍스트 가져 오기

  4. 4

    WPF C # ListBoxItem 내부의 Textblock에서 텍스트 가져 오기

  5. 5

    둘째 자녀에 대한 내부 텍스트 값 가져 오기

  6. 6

    perl XML :: LibXML 직접 자식 텍스트 노드 내용 가져 오기

  7. 7

    자식 노드 (또는 이와 유사한 것)를 포함하는 XML 노드에 대한 텍스트 가져 오기

  8. 8

    XML 노드 값 및 모든 중첩 열 노드 가져 오기

  9. 9

    XML에서 내부 노드의 속성 가져 오기

  10. 10

    특정 노드에 대한 xml 속성 값 가져 오기

  11. 11

    모든 XML 노드에 대한 경로 가져 오기

  12. 12

    문자열로 가져올 때 다른 문자와 함께 '\'가있는 xml 노드에서 내부 텍스트를 가져 오는 방법

  13. 13

    스칼라 : 내부 유형에 대한 TypeTag 가져 오기

  14. 14

    C #의 Excel 셀에서 텍스트 상자에 대한 값 가져 오기

  15. 15

    Poco XML-노드 내부 XML 가져 오기

  16. 16

    Angular2 / 4 http. "this"에 대한 중첩 액세스 가져 오기

  17. 17

    중첩 된 formArray 내에서 컨트롤 가져 오기

  18. 18

    여러 클래스 내에 중첩 된 값 가져 오기

  19. 19

    C # XML 선택 노드에 노드 포함 내부 텍스트 포함 텍스트 포함

  20. 20

    링크 내부의 텍스트에 대한 XML 도관 구문 분석

  21. 21

    대부분의 자식 SimpleXMLObject로 xml 노드 가져 오기

  22. 22

    중첩 된 JMenuItems 컨텍스트 메뉴에서 선택한 셀 행 가져 오기 (Java Swing)

  23. 23

    jquery의 여러 중첩 자식 요소에서 첫 번째 표시 텍스트 가져 오기

  24. 24

    텍스트 상자에서 선택한 연도 가져 오기

  25. 25

    내부 중첩 클래스에 대한 뷰 XML의 인플레이션 예외

  26. 26

    선택한 요소 jQuery 내에서 텍스트 가져 오기

  27. 27

    customtableview 텍스트 필드에 대한 indexPath 가져 오기

  28. 28

    내부 중첩 사전 가져 오기

  29. 29

    중첩 된 자식 노드 자바 스크립트의 텍스트 가져 오기

뜨겁다태그

보관