标签: xmlnodelist

xpath选择除属性值列表之外的节点

我想知道是否有更短的方法来选择忽略具有列表中指定的属性值的节点列表

工作范例:

/item[not(@uid='id1') and not(@uid='id2')]
Run Code Online (Sandbox Code Playgroud)

期望的替代方案:

/item[not(@uid in('id1','id2'))]
Run Code Online (Sandbox Code Playgroud)

xml xpath xmlnodelist contains

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

循环遍历XML中的多个子节点

  <Sections>
    <Classes>
      <Class>VI</Class>
      <Class>VII</Class>
    </Classes>
    <Students>
      <Student>abc</Student>
      <Student>def</Student>
    </Students>    
  </Sections>
Run Code Online (Sandbox Code Playgroud)

我必须遍历Classes才能将'Class'变成一个字符串数组.我还必须循环"学生",让'学生'进入一系列字符串.

XDocument doc.Load("File.xml");
     string str1;
     foreach(XElement mainLoop in doc.Descendants("Sections")) 
       {   
          foreach(XElement classLoop in mainLoop.Descendants("Classes"))
                str1 = classLoop.Element("Class").Value +",";
       //Also get Student value
        }
Run Code Online (Sandbox Code Playgroud)

没有努力获得所有课程.另外,我需要在使用LINQ to XML的情况下重写它,即使用XmlNodeList和XmlNodes.

XmlDocument doc1 = new XmlDocument();
doc1.Load("File.xml");
foreach(XmlNode mainLoop in doc.SelectNodes("Sections")) ??
Run Code Online (Sandbox Code Playgroud)

不确定如何去做.

c# xml xmlnodelist xmlnode linq-to-xml

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

结合XmlNodelist

任何人都可以给我一个解决方案,将xmlNodelists组合到一个列表中.

xmlnodelist

6
推荐指数
1
解决办法
4686
查看次数

将节点强制转换为给出ClassCastException的元素

这里n2是我的NodeList,我只想查看我的根元素的第一个子节点

public void ClickMe(View view){


    Node rootElement=n2.item(0);
    NodeList child=rootElement.getChildNodes();

    Node first=child.item(0);
    //ClassCastException error is coming whenever i am casting first to Element.

    Element nm=(Element)first;

    Option q= getOption(nm,first);
    Log.i(TAG,"the name is was talking about is : "+ q.getName());
}
Run Code Online (Sandbox Code Playgroud)

这就是logcat所说的

07-31 20:32:38.376: E/AndroidRuntime(2950): Caused by: java.lang.ClassCastException: org.apache.harmony.xml.dom.TextImpl cannot be cast to org.w3c.dom.Element
Run Code Online (Sandbox Code Playgroud)

java android xmlnodelist nodes

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

字符串到 xmlNode delphi(或如何将 xml 片段添加到 TXMLDocument)

我有一些包含格式良好的 XML 的文本字符串。

我希望能够(1)将这些字符串转换为IXMLNodes(2)将它们附加到现有的XMLDocument. 最好不声明新的XMLDocument第一个。

这似乎不可能?

有没有什么简单的方法可以完成等效的事情?我最初的想法是使用IXMLNode.XML(string) 属性并插入新字符串。IXMLNode.XML只读则不然。

这是一个例子,如果我在 a 中有以下字符串TStringList

<Property Name="Version" RttiType="tkString"></Property>
<Property Name="ShowSubunit" RttiType="tkBoolean"></Property>
Run Code Online (Sandbox Code Playgroud)

我有以下 XML,已加载到 中TXMLDocument,我如何轻松地将上面的两行附加到下面TXMLDocument

<Program Name="PFOO">
  <Class Name="CFOO">
    <Property Name="DBN" RttiType="tkString"/>
    <Property Name="SDate" RttiType="tkClass" ClassType="TXSDATE">12/30/1899</Property>
    <Property Name="XForm" RttiType="tkEnumeration">xfXML</Property>
    <Property Name="Singleton" RttiType="tkBoolean">True</Property>
  </Class>
</Program>
Run Code Online (Sandbox Code Playgroud)

还有其他(简单)方法可以实现此目的(请不要对 XML 属性进行受保护的黑客攻击)?

谢谢你!

delphi msxml xmlnodelist xmlnode txmldocument

5
推荐指数
1
解决办法
5711
查看次数

如何在C#中获取XML的所有子节点

我有一个这样的 XML 文档:

<Columns>
  <Column>
    <Name>A</Name>
    <Width>100</Width>
  </Column>
</Columns>

<Columns>

</Columns>

<Columns>
  <Column>
    <Name>C</Name>
    <Width>300</Width>
  </Column>
  <Column>
    <Name>C1</Name>
    <Width>310</Width>
  </Column>
</Columns>
Run Code Online (Sandbox Code Playgroud)

我正在获取它们的名称和宽度文本并将它们存储在列表中。

var man = new XmlNamespaceManager(xdoc.NameTable);
man.AddNamespace("ns", "http://schemas.microsoft.com/project");
List <string> lstText = new List<string>();
List <List<string>> lst = new List<List<string>>();
XmlNodeList xnList = xdoc.SelectNodes("/ns:Columns/ns:Column", man);

foreach (XmlNode xn in xnList)
        {
           lstText.Add(xn["Name"].InnerText));
           lstText.Add(xn["Width"].InnerText));
        }
lst.Add(lstText);
Run Code Online (Sandbox Code Playgroud)

所以,我只能得到这些值:A和100​​,C和300。我也想得到C1和310。我怎样才能得到它们?

编辑:有些列没有列,有些列有 1 个或多个列。在此示例中,我的列表有 3 个元素:

lst[0][0] = {A, 100}
lst[1][0] = null
lst[2][0] = {C, 300}, lst[2][1] = {C1, 310}
Run Code Online (Sandbox Code Playgroud)

c# xml xmlnodelist xmlnode

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

如何在XmlNode中获取文本

如何获取XmlNode中的文本?见下文:

XmlNodeList nodes = rootNode.SelectNodes("descendant::*");
for (int i = 0; i < nodes.Count; i++)
{
    XmlNode node = nodes.Item(i);

    //TODO: Display only the text of only this node, 
   // not a concatenation of the text in all child nodes provided by InnerText
}
Run Code Online (Sandbox Code Playgroud)

而我最终想要做的是在每个节点的文本中加上"HELP:".

c# xml xmlnodelist

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

在C#中读取XML

我正在使用System.Xml来读取C#中的xml文件.首先,我打开文件(本地)...并使用foreach获取值,如下所示:

XmlNodeList titles = xmlDoc.GetElementsByTagName("title");
foreach (XmlNode title in titles)
{
rowNews = new ListViewItem();
rowNews.Text = (title.ChildNodes[0].Value);
listView1.Items.Add(rowNews);
}
Run Code Online (Sandbox Code Playgroud)

问题是,我的文件中有很多名为title的rss标签,我只想阅读里面的内容<entry></entry>吗?

c# xml foreach xmlnodelist getelementsbytagname

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

使用没有xsd文件的模式读取XML

我本周收到了一个复杂的XML文件,它基于模式,但我没有收到任何xsd文件,我需要读取这个文件的每个节点.

下面的XML示例:

<xc:XmlTest xmlns:xc="XmlTest" xmlns:mp="bs.TestParameters" xmlns:rt="bs.TestParameters.Parameter1" xmlns:rtcu="bs.TestParameters.Parameter1.Var">
<xc:XmlTestArea xc:value="TestParameters">
    <mp:Name xc:Value="raddesso" xmlns:mp="bs.TestParameters">
        <mp:Date xc:Value="20130215">
            <rt:RunTest xmlns:rt="bs.TestParameters.Parameter1">
                <rtcu:Var xmlns:rtcu="bs.TestParameters.Parameter1.Var">
                    <mp:FinalValue>1234</mp:FinalValue>
                </rtcu:Var>
            </rt:RunTest>
        </mp:Date>
        <mp:Date xc:Value="20130216">
            <rt:RunTest xmlns:rt="bs.TestParameters.Parameter1">
                <rtcu:Var xmlns:rtcu="bs.TestParameters.Parameter1.Var">
                    <mp:FinalValue>23234</mp:FinalValue>
                </rtcu:Var>
            </rt:RunTest>
        </mp:Date>
    </mp:Name>
</xc:XmlTestArea>
</xc:XmlTest>
Run Code Online (Sandbox Code Playgroud)

这只是使用虚假数据的真实文件的示例.

有没有办法在这个节点上做foreach从每个日期找到FinalValue?

c# xml xmlnodelist xmlreader xml-serialization

0
推荐指数
1
解决办法
3058
查看次数

从 XML 中提取嵌套数据作为 R 中的数据框

我正在尝试从 XML 文件中提取数据,示例结构如下:

<pwx creator="PerfPRO" version="1.0">
<workout>
<athlete></athlete>
<title></title>
<sportType>Bike</sportType>
<cmt></cmt>
<device id=""></device>
<time>2016-01-19T08:01:00</time>
<summarydata>
    <beginning>0</beginning>
    <duration>3600.012</duration>
</summarydata>
<segment>
    <summarydata>
        <beginning>0</beginning>
        <duration>120</duration>
    </summarydata>
</segment>
<segment>
    <summarydata>
        <beginning>120</beginning>
        <duration>120</duration>
    </summarydata>
</segment>
<segment>
    <summarydata>
        <beginning>240</beginning>
        <duration>120</duration>
    </summarydata>
</segment>
Run Code Online (Sandbox Code Playgroud)

我想理想地作为数据帧访问“段”块(开始和持续时间)中的数据。有许多段块。

我已经尝试了很多东西,但似乎仍然无法提取它,我得到的只是一个空列表。这是我所做的(pwx 是文件名):

xmlData <- xmlInternalTreeParse(pwx, useInternalNodes = TRUE)
xmltop = xmlRoot(XMLdata)

d <- xpathSApply(doc = xmlData, path = "//pwx/workout/segment/summarydata/beginning", fun = xmlValue)
Run Code Online (Sandbox Code Playgroud)

我似乎也可以通过以下方式访问所有段:

segment <- xmltop[[1]]["segment"]
Run Code Online (Sandbox Code Playgroud)

但似乎无法获得值。我已经尝试了上面的许多变体。

非常感谢任何帮助,谢谢。

编辑:

> summary(xmlData)
$nameCounts

    cad        dist          hr         pwr      sample         spd  timeoffset   beginning 
   3274        3274        3274 …
Run Code Online (Sandbox Code Playgroud)

xml xmlnodelist r xml-parsing

0
推荐指数
1
解决办法
2092
查看次数