문제

아의 세부 사항을 표시하는 xml 오류 로그는 사용자에 winforms 응용 프로그램 및 이에 대한 최고의 제어하는 작업을 수행합니다.

는 오류 데이터 포함의 모든 절단하는 변수는 오류가 발생했습니다.이 포맷된 XML 문서로는 뭔가의 효과:

<error>
    <serverVariables>
        <item>
            <value>
        </item>
    </serverVariables>
    <queryString>
        <item name="">
            <value string=""> 
        </item>
    </queryString>      
</error>

저는 읽고 싶은 이 데이터에서는 문자열에 저장되고 사용자에게 디스플레이를 통해 windows 에서 양식에는 유용한 방법입니다.XML Notepad 않는 멋진 일을 xml 포맷하지만 정말 내가 찾는 것 때문에 내가 선호하는 것은 오히려 표시 항목 정보 이름:문자열 형식입니다.

어떤 제안을 하거나 내가 찾고 있고 사용자 정의 구현이 있습니까?

[편집]섹션의 이야 하는 데이터가 표시됩니다.

<?xml version="1.0" encoding="utf-8"?>
<error host="WIN12" type="System.Web.HttpException" message="The file '' does not exist." source="System.Web" detail="System.Web.HttpException: The file '' does not exist. at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath) at" time="2008-09-01T07:13:08.9171250+02:00" statusCode="404">
  <serverVariables>
    <item name="ALL_HTTP">
      <value string="HTTP_CONNECTION:close HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) " />
    </item>
    <item name="AUTH_TYPE">
      <value string="" />
    </item>
    <item name="HTTPS">
      <value string="off" />
    </item>
    <item name="HTTPS_KEYSIZE">
      <value string="" />
    </item>
    <item name="HTTP_USER_AGENT">
      <value string="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" />
    </item>
  </serverVariables>
  <queryString>
    <item name="tid">
      <value string="196" />
    </item>
  </queryString>
</error>
도움이 되었습니까?

해결책

변환할 수 있는 XML 데이터를 사용하여 XSLT
또 다른 옵션은 사용하 XLinq.
하려면 콘크리트 코드를 들어 우리에게 제공으로 샘플 데이터

편집:샘플 XSLT 변환을 위해 당신 XML 파일:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"/>
    <xsl:template match="//error/serverVariables">
      <xsl:text>Server variables:
      </xsl:text>
      <xsl:for-each select="item">
        <xsl:value-of select="@name"/>:<xsl:value-of select="value/@string"/>
        <xsl:text>
        </xsl:text>
      </xsl:for-each>
    </xsl:template>
    <xsl:template match="//error/queryString">
      <xsl:text>Query string items:
      </xsl:text>
      <xsl:for-each select="item">
        <xsl:value-of select="@name"/>:<xsl:value-of select="value/@string"/>
        <xsl:text>
        </xsl:text>
      </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

적용할 수 있습니다 이를 변환하여 XslCompiledTransform 클래스입니다.그것은 출력이 다음과 같다:

서버변수:
ALL_HTTP:HTTP_CONNECTION:닫 HTTP_USER_AGENT:Mozilla/4.0(compatible MSIE6.0;Windows NT5.1;SV1)
AUTH_TYPE:
HTTPS:off
HTTPS_KEYSIZE:
HTTP_USER_AGENT:Mozilla/4.0(compatible;MSIE6.0;Windows NT5.1;S)

Query string 항목:
tid:196

다른 팁

당신이 사용할 수 있다 트리 제어 사용을 재귀 XLinq 알고리즘 데이터를 넣습니다.나는 자신 인터페이스용으로 사용자를 구축에 사용자 지정 XML 표현했습니다.

XML 데이터 바인딩.Visual Studio 를 사용하여 또는 xsd.exe 를 생성하는 데이터 집합이나 클래스에서 XSD,다음 사용 System.Xml.Serialization.XmlSerializer 필요할 경우를 설정하는 XML 을 개체/데이터 집합이 있습니다.마사지 않습니다.에 표시합니다.

사용하여 시도할 수 있습니다 DataGridView 제어합니다.예를 들어,XML 파일을 로드하에 DevStudio 마우스 오른쪽 단추로 클릭한 다음에는 XML 보기"를 선택하고 데이터 표".해야 합를 읽 API 컨트롤에 그것을 사용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top