【发布时间】:2019-06-29 01:32:13
【问题描述】:
我正在尝试通过属性值选择 xml 节点。
我可以通过向下钻取子节点来导航节点。我可以通过某种方式直接选择任何节点。
这是我用来测试的示例 xml 文件。
<svg version="1.1" archibusversion="24.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="1284.03 1666.86 8172 3392">
<g id="viewer">
<g id="mirror" transform="scale(1, 1)" stroke-width="0.05%">
<g id="background" fill="none"/>
<g id="annotations" fill="none" />
<g id="text" font-family="Arial" font-size="1.3" font-weight="normal" text-style="normal" text-anchor="middle" dominant-baseline="alphabetical" fill="#000000" xml:space="preserve" />
</g>
</g>
</svg>
这是我的示例代码
static void Main(string[] args)
{
XmlDocument document = new XmlDocument();
document.Load(@"test.svg");
XmlNode root = document.DocumentElement;
XmlNodeList nl = document.SelectNodes("//element[@id='background']");
}
我希望能够从 svg 文件中检索节点。这个节点将有很多我需要处理的子节点。
【问题讨论】:
-
你想从 XML 中得到什么?目前还不清楚……
-
在您的 xpath 表达式中,
element应该是您想要的元素的实际名称,或者如果您想要任何具有该属性的元素,则省略。您的 XML 不包含任何<element> -
最后我希望合并元素下面的元素
它将有许多子节点,它们是文件中的层。我需要重新命名图层,并将绘图元素合并到几个节点。 -
@Amy,我也尝试过使用
XmlNodeList nl = document.SelectNodes("//g[@id='background']");,因为节点是但这也会导致空列表