【问题标题】:How to count a specific tags in xml file?如何计算 xml 文件中的特定标签?
【发布时间】:2015-06-29 09:22:42
【问题描述】:

XML:

<chapter>
<openr><title><num aid:pstyle="_CN">1</num></title></openr>
<media.block id="fig001"><media type="image"/><caption aid:pstyle="Caption"><num>FIG. 1.1&#x2002;</num><para><txt>some text</txt></para></caption></media.block>
<txt>some</txt>
<media.block id="fig002"><media type="image"/><caption aid:pstyle="Caption"><num>FIG. 1.2&#x2002;</num><para><txt>some text</txt></para></caption></media.block>
</chapter>

我需要提取&lt;media.block的计数(以获取文档中的数字数量)和&lt;num aid:pstyle="_CN"&gt;1&lt;/num&gt;的内容(此处为ans=1)。

我不知道如何使用扩展脚本访问 XML 元素。至少一个提示就足够了

【问题讨论】:

  • 不是您问题的直接答案,而是:决定您是否需要将其视为 xml 文件。简单地使用文本搜索功能比通过 XML 库运行要快得多。
  • 但是,我应该知道哪种方法可以有效地满足这一要求吗?

标签: xml extendscript adobe-indesign


【解决方案1】:

这可以通过多种方式完成。一种是使用 Javascript 中内置的 XML 对象一样简单:

xmlFile = File ('/test.xml');
xmlFile.open();
var myString = xmlFile.read();
xmlFile.close();

myXml = new XML ();
myXml = XML(myString);

media_block = myXml.xpath("//media.block");

alert (media_block.length());

【讨论】: