标签: root-node

PHP5:在DOMDocument中查找根节点

我有一个PHP5 DOMDocument,我尝试找到根节点(不是根元素).

例:

<test>
    <element>
        <bla1>x</bla1>
        <bla2>x</bla2>
    </element>
    <element>
        <bla1>y</bla1>
        <bla2>y</bla2>
    </element>
    <element>
        <bla1>z</bla1>
        <bla2>z</bla2>
    </element>
</test>
Run Code Online (Sandbox Code Playgroud)

我想得到"测试"的DOMNode,以便我可以调用 - 例如 - hasChildNodes.我可以得到"documentElement",但这是一个DOMElement.也许我可以从那里出发?

$d = DOMDocument::loadXML($xml);
// [... do some stuff here to find document's root node ...]
if ($rootnode->hasChildNodes()) echo 'yayy!'
Run Code Online (Sandbox Code Playgroud)

谁能填补空白?我似乎是盲目的.

(显然不仅仅是我想要调用的hasChildNodes - 所以不,找到另一个方法来查找文档是否包含东西也无济于事.这只是我的简单示例.我最后需要一个DOMNode.)

php xml dom root-node

13
推荐指数
3
解决办法
2万
查看次数

C#Xml序列化,集合和根元素

我的应用程序序列化流中的对象.以下是我需要的样本:

<links>
  <link href="/users" rel="users" />
  <link href="/features" rel="features" />
</links>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,对象是"链接"对象的集合.

-----------第一版

起初我使用了DataContractSerializer,但是你不能将成员序列化为属性()

这是对象:

[DataContract(Name="link")]
public class LinkV1
{
    [DataMember(Name="href")]
    public string Url { get; set; }

    [DataMember(Name="rel")]
    public string Relationship { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是结果:

<ArrayOflink xmlns:i="...." xmlns="...">
  <link>
    <href>/users</href>
    <rel>users</rel>
  </link>
  <link>
    <href>/features</href>
    <rel>features</rel>
  </link>
</ArrayOflink>
Run Code Online (Sandbox Code Playgroud)

-----------第二版

好吧,不要安静我想要的东西,所以我尝试了经典的XmlSerializer,但是......哦,不,如果根元素是一个集合,你不能指定根元素和集合元素的名称......

这是代码:

[XmlRoot("link")]
public class LinkV2
{
    [XmlAttribute("href")]
    public string Url { get; set; }

    [XmlAttribute("rel")]
    public string Relationship { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# xml collections serialization root-node

11
推荐指数
1
解决办法
2万
查看次数

什么是树中根节点的级别?

有些文章说根节点的级别是 0,而有些文章说它是 1。

来自https://www.gatevidyalay.com/tree-data-structure-tree-terminology/

在树中,从上到下的每一步都称为树的层次。级别计数从 0 开始,并在每个级别或步骤增加 1。

这里的根级别为 0

http://typeocaml.com/2014/11/26/height-depth-and-level-of-a-tree/

要记住的重要一点是,在谈论级别时,它是从 1 开始的,根的级别是 1。我们在解决与级别相关的问题时需要注意这一点。

所以它说那个级别是1

我无法理解哪个是正确的。

tree root-node data-structures

10
推荐指数
1
解决办法
3788
查看次数

绑定到ObservableCollection的WPF TreeView不更新根节点

对不起 - 我的问题与问题几乎相同,但由于没有得到可行的答案,我希望其他人有一些新的想法.

我有一个绑定到单一类型的层次结构的WPF TreeView:

public class Entity
{
    public string Title { get; set; }
    public ObservableCollection<Entity> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Entity类实现了INotifyPropertyChanged,但为了清楚起见,我省略了这段代码.

TreeView绑定到ObservableCollection <Entity>,每个Entity实例通过其Children属性公开一组包含的Entity实例:

<TreeView ItemsSource="{Binding Path=Entities}">
    <TreeView.Resources>
        <HierarchicalDataTemplate DataType="{x:Type local:Entity}" ItemsSource="{Binding Path=Children}">
           <TextBlock Text="{Binding Path=Title}" />
        </HierarchicalDataTemplate>
   </TreeView.Resources>
</TreeView>
Run Code Online (Sandbox Code Playgroud)

最初,TreeView按预期绑定并正确显示多级层次结构.此外,当以编程方式修改其中一个Children集合的成员资格时,更改将正确反映在TreeView中.

但是,对根成员级别ObservableCollection <Entity>的成员身份的更改不会反映在TreeView中.

任何建议,将不胜感激.

蒂姆,谢谢

wpf treeview binding observablecollection root-node

9
推荐指数
1
解决办法
1万
查看次数

wxPython TreeCtrl在显示箭头时没有显示root

我正在使用wxPython制作一个python树可视化工具.它会像这样使用:

show_tree([ 'A node with no children', ('A node with children', 'A child node', ('A child node with children', 'Another child')) ])
Run Code Online (Sandbox Code Playgroud)

它运行正常但它显示了一个值为"Tree"的根.我这样做是为了创造多个根,但后来才知道我不允许这样做.我恢复了原来的代码,但是用它改变了它:self.tree = wx.TreeCtrl(self)对此:self.tree = wx.TreeCtrl(self, style=wx.TR_HIDE_ROOT).它工作但它没有显示侧面的小箭头,所以你不知道哪些节点有孩子.有没有办法隐藏根节点但保留箭头.注意:我在使用Python 2.5版和wxPython版本2.8.4.0的Mac上.

python tree wxwidgets treecontrol root-node

4
推荐指数
1
解决办法
2172
查看次数

一棵树应该只有一个根节点

我想显示一个树形结构.我是否真的需要为用户/树提供一个预定义的硬编码根节点,如"RootUnit",在那里他可以添加他的孩子或后代?

添加节点时这是否有意义或仅引起麻烦?

c# treeview hierarchy root-node

3
推荐指数
1
解决办法
2012
查看次数

隐藏根时根直接子节点图标不可见

我有一个 JTree 结构,如下所示。我有每当节点有子节点时就会出现的图标,它工作正常。

我的问题是我需要隐藏 ROOT 节点。当我隐藏 ROOT 节点时,不会显示 MainTop1 和 MainTop2 节点的图标,即使它们有子节点也是如此。为了隐藏 ROOT 节点,我使用“setRootVisible(false)”。

此外,当 ROOT 节点隐藏时,Topic1 和 Topic 节点的图标也会正确显示。

有人知道当ROOT隐藏时如何显示MainTop1和MainTop2的图标吗?提前致谢。

下面是我的树结构:

ROOT
    MainTop1
        Topic1
            Subtopic1
            Subtopic2
    MainTop2
        Topic2
            Subtopic1
Run Code Online (Sandbox Code Playgroud)

java applet swing jtree root-node

3
推荐指数
1
解决办法
1462
查看次数

复制除根节点和属性XSLT之外的XML文件内容

我正在处理一个小的XSLT文件来复制XML文件的内容并删除声明和根节点.根节点具有名称空间属性.

我目前正在使用它,除了现在命名空间属性现在被复制到直接子节点.

这是我的xslt文件到目前为止,没有什么大或复杂的:

    <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" encoding="utf-8"/>
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="/*">
    <xsl:apply-templates select="node()" />
  </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

我的输入文件是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<Report_Data xmlns="examplenamespace">
    <Report_Entry>
        <Report_Date>
        </Report_Date>
    </Report_Entry>
    <Report_Entry>
        <Report_Date>
        </Report_Date>
    </Report_Entry>
    <Report_Entry>
        <Report_Date>
        </Report_Date>
    </Report_Entry>
</Report_Data>
Run Code Online (Sandbox Code Playgroud)

XSLT之后的输出是这样的:

<Report_Entry xmlns="examplenamespace">
    <Report_Date>
    </Report_Date>
</Report_Entry>
<Report_Entry xmlns="examplenamespace">
    <Report_Date>
    </Report_Date>
</Report_Entry>
<Report_Entry xmlns="examplenamespace">
    <Report_Date>
    </Report_Date>
</Report_Entry>
Run Code Online (Sandbox Code Playgroud)

问题是,每个Report_Entry标记现在从我删除的根节点获取该xml命名空间属性.

如果你想知道,我知道XSLT的输出结构不好.我稍后在XSLT转换后添加XML声明和不同的根节点名称.

xml xslt root-node

3
推荐指数
1
解决办法
3424
查看次数