标签: vtd-xml

使用xpath和vtd-xml将元素的子节点和文本作为字符串

这是我的XML的一部分:

<MAIN>
    <L>
        <D>string1 string2 <b>string3</b> string4</D>
    </L>
    <L>
        <D>string5 string6 <b>string7</b> string8 <i>string9</i></D>
    </L>
</MAIN>

I want to get the content of all the <D> tags as string. So, the example above should return:

1st iteration: 'string1 string2 <b>string3</b> string4'
2nd iteration: 'string5 string6 <b>string7</b> string8 <i>string9</i>'
etc...
Run Code Online (Sandbox Code Playgroud)

在vtd-xml中,我使用了带有XPath"// L/D"和"// L/D/text()"的AutoPilot,但是没有用.

任何建议或替代方法将不胜感激.

问候

java xml xpath vtd-xml

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

Java中的VTD-XML - 在XMLModifier.insertAfterElement之后查找索引

我已经开始在Java中使用VTD(我猜VTD-XML),而XPath读取它非常好.我现在遇到的问题是插入数据.让我们说我正在做以下事情:

VTDNav nav = preExistingGen.getNav();
AutoPilot pilot = new AutoPilot(nav);
pilot.selectXPath("/Something/SomethingElse");
if (pilot.evalXPath() != -1) {
  XMLModifier modifier = new XMLModifier(nav);
  modifier.insertAfterElement("<some>content</some>");
}
Run Code Online (Sandbox Code Playgroud)

我假设这是一个实时更新,将反映在VTDNav中.它看起来像我的理解是不正确的,因为只需插入元素含量无助于净资产值(如果我输出的VTDNav,它仍包含我的原始XML).我似乎能够处理新xml的唯一方法是从XMLModifier输出它.

modifier.outputAndReparse(); // Gives me a new VTDNav with the new content
Run Code Online (Sandbox Code Playgroud)

这里有什么我想念的吗?有更简单的方法吗?我希望能够插入新内容,然后立即获取新索引.我现有的代码(使用标准DOM类)有大量的插入和更新,我还需要知道文档中最后插入的元素的位置.不必outputAndReparse()每次然后找到插入的元素(我可能甚至无法保证)似乎并不像一个合理的解决方案.

java xml xpath dom vtd-xml

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

如何使用VTD-XML解析器将嵌套的XML文件元素放入对象列表?

我有一个很大的,非常嵌套的XML文件.所有实体和属性都将成为我的Object变量.我正在创建此类对象的列表.我知道如何使用DOM,SAX和XMLPullParser来做它并且它工作正常但我有VTD解析器的问题.解析后的ListView为空.我把XML文件和我的代码放在下面.也许有人知道我做错了什么.

<MedlineCitationSet>
<MedlineCitation Owner="NLM" Status="MEDLINE">
    <PMID Version="1">10540283</PMID>
    <DateCreated>
        <Year>1999</Year>
        <Month>12</Month>
        <Day>17</Day>
    </DateCreated>
    <Article PubModel="Print">
        <Journal>
            <ISSN IssnType="Print">0950-382X</ISSN>
            <JournalIssue CitedMedium="Print">
                <Volume>34</Volume>
                <Issue>1</Issue>
            </JournalIssue>...
Run Code Online (Sandbox Code Playgroud)

我的android代码:

try {
        articlesList = new ArrayList<>();

        VTDGen vtdGen = new VTDGen();
        vtdGen.setDoc(bytes);
        vtdGen.parse(false);

        AutoPilot ap = new AutoPilot();
        VTDNav vtdNav = vtdGen.getNav();

        int i = -1;

        ap.bind(vtdNav);
        ap.selectXPath("/MedlineCitationSet/MedlineCitation");

        while ((ap.evalXPath()) != -1) {

            articlesList.add(new Article());
            String year = null, day = null, month = null;
            i++;

            if (vtdNav.hasAttr("Owner"))
                articlesList.get(i).setOwner(vtdNav.toNormalizedString(vtdNav.getAttrVal("Owner")));
            if (vtdNav.hasAttr("Status"))
                articlesList.get(i).setStatus(vtdNav.toNormalizedString(vtdNav.getAttrVal("Status")));

            vtdNav.push();

            AutoPilot ap1 = new …
Run Code Online (Sandbox Code Playgroud)

java xpath android arraylist vtd-xml

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

VTD-XML可以将String作为输入吗?

嘿,我正在尝试使用VTD-XML来解析作为String给出的XML,但我找不到如何做到这一点.任何帮助,将不胜感激.

http://vtd-xml.sourceforge.net

java xml parsing vtd-xml

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

在java中使用vtd-xml获取xml中的属性文本

给出以下xml:

<JUT>
    <DDT>
        <SSG q="textGoal">Lorem ipsum...</SSG>
    </DDT>
    ....
    ...
</JUT>
Run Code Online (Sandbox Code Playgroud)

我正在使用带有XPath的vtd-xml来检索'textGoal',如下所示:

        VTDGen vg = new VTDGen();
        vg.setDoc(xmlContent);
        vg.parse(false);
        VTDNav vn = vg.getNav();
        AutoPilot ap = new AutoPilot(vn);
        int node = 0;

        ap.selectXPath("//SSG[1]/@q");
        node = ap.evalXPath();
        if(node != -1) {
            myString = vn.toString(node);
        }
Run Code Online (Sandbox Code Playgroud)

这使得myString为'q'而不是'textGoal'.我有两个问题:

  1. 我究竟做错了什么?
  2. 我知道'textGoal'是网址转义的.vtd-xml是做URL-UNescape还是我自己必须这样做?

问候

java xml xpath vtd-xml

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

VTD-XML解析性能(速度关键因素).请求反馈/评论

我即将使用VTD-XML(可在http://vtd-xml.sourceforge.net/找到),但我有兴趣获得任何使用该库并有任何意见的实际使用反馈.

在URL(http://vtd-xml.sourceforge.net/)有基准测试,但是如果有人使用了VTD-XML并且有评论,我希望听到它们.速度是应用程序中的关键因素,开发人员在实际使用后的评论是我正在寻找的.

问候,

java xml performance vtd-xml

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

用于生成/使用REST服务的最佳Java XML解析器

目前使用Java的内置XML DOM库进行创建/解析.丑陋,即使有很多辅助类和方法,性能和内存使用也很糟糕.

在生成和使用REST服务方面,处理XML的最佳Java工具或框架是什么?

我使用的服务使用JAXB.我能够使用他们的课程,方便,轻松地使用他们的服务.它很漂亮,但在大多数情况下JAXB仍然很痛苦.所以我查看了StAX和VTD-XML.StAX在大约4年内没有更新.VTD-XML是Java中XML处理的最新技术吗?

java xml vtd-xml xml-parsing

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

使用vtd-xml解析xml文件

如何在java或C中使用vtd-xml解析如下所示的xml文件?

<?xml version="1.0" encoding="utf-8"?>
<StockReport>
  <Article Code="027783012" Height="35" Width="36" Length="136"  TotalPacks="4" AvailablePacks="4" StockReturnPacks="4" BlockedPacks="0" NextExpiryDate="2015-01-17">
      <Machine Number="1" TotalPacks="4" AvailablePacks="4" StockReturnPacks="4" BlockedPacks="0" NextExpiryDate="2015-01-17" />
 </Article>
 <Article Code="025349109" Height="36" Width="37" Length="129" TotalPacks="6" AvailablePacks="6" StockReturnPacks="6" BlockedPacks="0" NextExpiryDate="2015-01-17">
      <Machine Number="1" TotalPacks="6" AvailablePacks="6" StockReturnPacks="6" BlockedPacks="0" NextExpiryDate="2015-01-17" />
 </Article>
 <Article Code="039154327" Height="0" Width="0" Length="0" TotalPacks="0" AvailablePacks="0" StockReturnPacks="0" BlockedPacks="0" NextExpiryDate="" />
 <Article Code="932654167" Height="57" Width="99" Length="137" TotalPacks="27" AvailablePacks="27" StockReturnPacks="27" BlockedPacks="0" NextExpiryDate="2014-04-17">
    <Machine Number="1" TotalPacks="16" AvailablePacks="16" StockReturnPacks="16" BlockedPacks="0" NextExpiryDate="2015-01-17" />
    <Machine Number="2" TotalPacks="11" AvailablePacks="11" StockReturnPacks="11" BlockedPacks="0" NextExpiryDate="2014-04-17" /> …
Run Code Online (Sandbox Code Playgroud)

c java xml vtd-xml xml-parsing

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

如何提取XPath指向的所有值?

我有以下xml

<test>
    <nodeA>
           <nodeB>key</nodeB>
           <nodeC>value1</nodeC>
    </nodeA>
    <nodeA>
           <nodeB>key</nodeB>
           <nodeC>value2</nodeC>
    </nodeA>
</test>
Run Code Online (Sandbox Code Playgroud)

如何连接并获取xpath中的所有值/test/nodeA/nodeC?我在这种情况下的预期输出是value1value2

我不确定从我读过的内容可以用xpath,但谢谢你的帮助.

PS:我使用Ximpleware的VTD-XML在Java中解析它.任何基于Java的解决方案也欢迎.目前我的java解决方案只提供第一个值,即value1

java xml xpath vtd-xml

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

标签 统计

java ×9

vtd-xml ×9

xml ×8

xpath ×5

xml-parsing ×2

android ×1

arraylist ×1

c ×1

dom ×1

parsing ×1

performance ×1