我需要编写一个Linq查询来根据属性名称获取XElements。
XMl不是结构化的。属性可能位于某个XML节点的顶部或xml中的任何位置?
实际上它是word文档xml文件document.xml会有地方使用r:Id,现在我需要获取包含该属性的所有元素!
下面是XML
> <w:p w:rsidR="00302209"
> w:rsidRDefault="005C326E"
> w:rsidP="00302209">
> - <w:pPr> <w:framePr w:w="3186" w:h="1701" w:hSpace="142"
> w:wrap="around" w:vAnchor="page"
> w:hAnchor="page" w:x="8688"
> w:y="11449" /> <w:spacing
> w:line="240" w:lineRule="exact" />
> - <w:rPr> <w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman"
> /> <w:szCs w:val="24" />
> </w:rPr> </w:pPr>
> - <w:hyperlink r:id="rId6" w:history="1">
> - <w:r w:rsidR="00302209">
> - <w:rPr> <w:rStyle w:val="Hyperlink" /> <w:rFonts
> w:ascii="Times New Roman"
> w:hAnsi="Times New Roman" />
> <w:szCs w:val="24" /> </w:rPr>
> <w:t>dd.com</w:t> </w:r>
> </w:hyperlink> </w:p> <w:sectPr
> w:rsidR="001D3CA8"
> w:rsidRPr="00E275EA"
> w:rsidSect="00522450">
> <w:headerReference w:type="even"
> r:id="rId7" /> <w:headerReference
> w:type="default" r:id="rId8" />
> <w:footerReference w:type="even"
> r:id="rId9" /> <w:footerReference
> w:type="default" r:id="rId10" />
> <w:headerReference w:type="first"
> r:id="rId11" /> <w:footerReference
> w:type="first" r:id="rId12" />
> <w:pgSz w:w="11907" w:h="16840"
> w:code="9" /> <w:pgMar w:top="1701"
> w:right="3572" w:bottom="510"
> w:left="1134" w:header="567"
> w:footer="238" w:gutter="0" />
> <w:cols w:space="708" /> <w:titlePg
> /> </w:sectPr>
此致 Francis P。
答案 0 :(得分:2)
当然,这很简单:
var elements = doc.Descendants().Where(x => x.Attribute("Foo") != null);
如果那不是你追求的那样,请告诉我......