按属性名称排列的 XElement

发布于 2024-09-15 02:14:12 字数 1884 浏览 2 评论 0原文

我需要编写一个 Linq 查询来根据属性名称获取 XElements。

XMl 不是结构化的。属性可能位于某个 XML 节点的顶部或 xml 中的任何位置?

好吧,实际上它是单词文档,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>

问候语 弗朗西斯·P.

I need to write a Linq query to get XElements based on Attribute Name.

The XMl is not a structured one.. The attribute may there at the top of some XML node or any where in the xml ?

Well actually it is the word document the xml file document.xml there will be places it uses the r:Id ,Now i need to get all the Elements which contain this attribute !

Below is the 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>

Regards
Francis P.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北凤男飞 2024-09-22 02:14:12

当然,这很简单:

var elements = doc.Descendants().Where(x => x.Attribute("Foo") != null);

如果这不是您想要的,请告诉我......

Sure, it's easy:

var elements = doc.Descendants().Where(x => x.Attribute("Foo") != null);

Let me know if that's not what you were after...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文