나는 Xpath에 익숙하지 않아 문제가있다. 특정 부모 노드 아래 모든 노드를 원합니다! 이 쿼리로 시도했지만 빈 결과 만 얻습니다! :(C# - XPath-Question : 지정된 부모 노드에서 노드를 얻는 방법?
var ISDN_confs = from x in xdoc.XPathSelectedElements("//member[name='participantOne']//member[name='name']")
select x;
샘플 XML :.
이<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>calls</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>uniqueId</name>
<value>
<int>6</int>
</value>
</member>
<member>
<name>participantOne</name>
<value>
<struct>
<member>
<name>uniqueId</name>
<value>
<int>1609</int>
</value>
</member>
<member>
<name>protocol</name>
<value>
<string>h323</string>
</value>
</member>
<member>
<name>incoming</name>
<value>
<boolean>1</boolean>
</value>
</member>
<member>
<name>progress</name>
<value>
<string>connected</string>
</value>
</member>
<member>
<name>fecc</name>
<value>
<boolean>1</boolean>
</value>
</member>
<member>
<name>videoCodec</name>
<value>
<string>h264</string>
</value>
</member>
<member>
<name>audioCodec</name>
<value>
<string>g722</string>
</value>
</member>
<member>
<name>autoAttendant</name>
<value>
<boolean>0</boolean>
</value>
</member>
<member>
<name>name</name>
<value>
<string>Test Endpoints</string>
</value>
</member>
<member>
<name>number</name>
<value>
<string>12345</string>
</value>
</member>
<member>
<name>ipAddress</name>
<value>
<string>192.168.2.155</string>
</value>
</member>
<member>
<name>callIdentifier</name>
<value>
<base64>CCCCVVVVVDDDDD</base64>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>participantTwo</name>
<value>
<struct>
<member>
<name>name</name>
<value>
<string/>
</value>
</member>
<member>
<name>number</name>
<value>
<string>123456</string>
</value>
</member>
<member>
<name>channels</name>
<value>
<array>
<data>
<value>
<int>1</int>
</value>
<value>
<int>2</int>
</value>
</data>
</array>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
원하는 출력 그래서 내가 모든 이름 - 회원 싶지 않는,하지만 실제 출력의 제한된 변화해야 두의 이름 - 회원 채널 멤버가없는 구조 I 희망
는 분명 내가 원하는 :
샘플 출력 :.!
<member>
<name>name</name>
<value>
<string>Test Endpoints</string>
</value>
</member>
위의 쿼리에서 나는 아래의 주석에서 말했듯이, 모든 이름 멤버를 얻었지만 원하는 것은 그렇지 않습니다!
UPDATE --- 는 난 단지 비어있는 결과를 얻을이 쿼리
var parts = from c in xdoc.XPathSelectElements("//member[name='name']")
where c.Element("name").Value == "channels" && c.Element("name").HasElements
select c;
만에 채널-회원이 모든 이름 구성원을 얻기 위해 노력!
XML 스 니펫이 유효하지 않은 것 같습니다. 첫 번째 값과 구조체 노드는 어디에 닫 혔는가? 그리고 최상위 구성원 노드도 닫히지 않았습니까? 귀하의 구조를 명확하게 만드는 스 니펫을 삽입 할 수 있습니까? 텍스트로 삽입하여 복사하여 붙여 넣을 수 있습니다. –
그냥 다른 시간을 편집, 지금 내가 원하는 것을 분명히 희망 :) – cordellcp3