간편한 조작을 위해 XmlReader
을 XDocument
에로드하려고합니다. XML은 잘 형성되고 유효합니다 (이중 체크). 나는 시도하고 XDocument
에로드 할 때,이를로드 할 InvalidOperationException
XDocument에 XmlReader를로드 할 수 없습니다.
The XmlReader state should be EndOfFile after this operation.
코드가 나는 문제를 일으키는 XML의 샘플을 포함 시켰습니다
public void ReadXml(System.Xml.XmlReader reader)
{
var doc = XDocument.Load(reader);
}
입니다 얻을. 이 클래스를 문제없이 직렬화 및 비 직렬화 할 수는 있지만로드 할 수는 없습니다. 어떤 아이디어?
<?xml version="1.0" encoding="utf-8"?>
<ForestView xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Forest>
<TreeNodeView>
<Level>Master</Level>
<ID>39476b1f-e2f8-4d76-b82e-a5166899ad43</ID>
<Name>Black Mesa</Name>
<ServerIPAddress>127.0.0.1</ServerIPAddress>
<ServerPortNumber>8000</ServerPortNumber>
<ClientIPAddress>NA</ClientIPAddress>
<ClientPortNumber>4000</ClientPortNumber>
<Nodes>
<Level>Server</Level>
<NodeID>062c3e03-235d-4d7d-9b60-c6228c9cc89e</NodeID>
<Name />
<ServerIPAddress>127.0.0.1</ServerIPAddress>
<ServerPortNumber>5000</ServerPortNumber>
<ClientIPAddress>127.0.0.1</ClientIPAddress>
<ClientPortNumber>4000</ClientPortNumber>
</Nodes>
<Nodes>
<Level>Intermediate</Level>
<NodeID>9bafdc9e-771e-42cf-8f03-e7e75a67a6d1</NodeID>
<Name>Jen</Name>
<ServerIPAddress>127.0.0.1</ServerIPAddress>
<ServerPortNumber>8001</ServerPortNumber>
<ClientIPAddress>127.0.0.1</ClientIPAddress>
<ClientPortNumber>8000</ClientPortNumber>
<Nodes>
<Level>Terminal</Level>
<NodeID>72509141-0ab8-45c1-8042-30afb233b4a8</NodeID>
<Name>Mary</Name>
<ServerIPAddress>127.0.0.1</ServerIPAddress>
<ServerPortNumber>0</ServerPortNumber>
<ClientIPAddress>127.0.0.1</ClientIPAddress>
<ClientPortNumber>8001</ClientPortNumber>
</Nodes>
</Nodes>
</TreeNodeView>
</Forest>
</ForestView>
이 스 니펫에는 아무 문제가 없습니다. XmlReader를 인스턴스화하고 ReadXml 메서드를 호출하는 코드를 게시 할 수 있습니까? –
전화를 건 코드를 보여주고 전체 예외를 보여주십시오. –
'XDocument.Load'에 넘겨주는'XmlReader'를 만들기 위해 사용하는 코드도 보여주십시오. –