Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XElement返回节点值_Xml_Linq_Xpath - Fatal编程技术网

Xml XElement返回节点值

Xml XElement返回节点值,xml,linq,xpath,Xml,Linq,Xpath,我有一个元素看起来像这样 <VideoFiles> <VideoFileInfo> <VideoType>1000</VideoType> <FormatCode>1000</FormatCode> <Url>http://www.idontwantthisvalue.com</Url> </VideoFileInfo> <Video

我有一个元素看起来像这样

    <VideoFiles>
  <VideoFileInfo>
    <VideoType>1000</VideoType> 
    <FormatCode>1000</FormatCode> 
    <Url>http://www.idontwantthisvalue.com</Url> 
  </VideoFileInfo>
  <VideoFileInfo>
    <VideoType>WMVOriginal</VideoType> 
    <FormatCode>1004</FormatCode> 
    <Url>http://www.iwanthitsvalue.com</Url> 
  </VideoFile>

1000
1000
http://www.idontwantthisvalue.com 
原始的
1004
http://www.iwanthitsvalue.com 
我需要获取一个值,该值有一个值为1004的兄弟

有人能帮上忙吗?

以下XSLT:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <xsl:value-of select="VideoFiles/VideoFileInfo[FormatCode='1004']/Url"/>
    </xsl:template>
</xsl:stylesheet>

纯LINQ到XML解决方案:

    XElement xdoc = XElement.Load("test.xml");
    var myUrl = xdoc.Descendants("VideoFileInfo")
                    .Where(x => x.Element("FormatCode").Value == "1004")
                    .Select(x => x.Element("Url").Value)
                    .FirstOrDefault();
通常:

/VideoFiles/VideoFileInfo[FormatCode='1004']/Url
正是

我需要获取具有 值为1004的兄弟姐妹

/VideoFiles/VideoFileInfo[FormatCode='1004']/Url
/VideoFiles/VideoFileInfo/*[.='1004']/following-sibling::*[1]
//*[.='1004']/following-sibling::*[1]