【发布时间】:2020-09-23 01:07:08
【问题描述】:
对不起,我的英语不好......
我尝试从我的示例 XML 代码中获取元素“成员”及其值的枚举。此代码由外部程序生成。我将此 xml 文件缩小为示例。
<?xml version="1.0" encoding="utf-8"?>
<Document>
<SW.Types.PlcStruct ID="0">
<AttributeList>
<Interface>
<Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v4">
<Section Name="None">
<Member Name="FirstMember" Datatype="Word"><AttributeList><BooleanAttribute Name="ExternalAccessible" SystemDefined="true">true</BooleanAttribute></AttributeList><Comment><MultiLanguageText Lang="de-DE">FirstMemberComment</MultiLanguageText></Comment></Member>
<Member Name="SecondMember" Datatype="Word"><AttributeList><BooleanAttribute Name="ExternalAccessible" SystemDefined="true">true</BooleanAttribute></AttributeList><Comment><MultiLanguageText Lang="de-DE">SecondMemberComment</MultiLanguageText></Comment></Member>
</Section>
</Sections>
</Interface>
</AttributeList>
</SW.Types.PlcStruct>
</Document>
我一直到“接口”元素为止,但除此之外我无法访问数据。
XElement xelement = XElement.Load(xmlPath);
IEnumerable<XElement> udtContent = xelement.Element("SW.Types.PlcStruct").Element("AttributeList").Element("Interface").Elements();
这是因为那个 xml 文件中的那个 xmlns 命名空间标签吗? 如果我现在调试 udtContent 我得到这个:
{<Sections xmlns="http://www.siemens.com/automation/Openness/SW/Interface/v4">
<Section Name="None">
<Member Name="FirstMember" Datatype="Word">
<AttributeList>
<BooleanAttribute Name="ExternalAccessible" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Comment>
<MultiLanguageText Lang="de-DE">FirstMemberComment</MultiLanguageText>
</Comment>
</Member>
<Member Name="SecondMember" Datatype="Word">
<AttributeList>
<BooleanAttribute Name="ExternalAccessible" SystemDefined="true">true</BooleanAttribute>
</AttributeList>
<Comment>
<MultiLanguageText Lang="de-DE">SecondMemberComment</MultiLanguageText>
</Comment>
</Member>
</Section>
</Sections>}
希望你能给我一个提示如何获取“成员”元素的枚举...
【问题讨论】:
标签: c# xml namespaces xelement