- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 xml 文件的新手,所以我需要一些帮助。我需要将 xml 文件导入到 excel 中,但我无法正确格式化。 “P”标签中的内容我需要在一行中,属性值(n 值)是列标题。 “D”标签中的内容在我正在使用的文件中多次出现,“D”的 id 上升到 31。所有这些标签都在“B”标签中。其中有敏感信息,所以我不得不用东西替换文本,对不起。我希望这一切都是有道理的,任何信息或指向正确的方向都会受到赞赏。谢谢你。
<D id="1">
<V n="stuff1">stuff1</V>
<V n="stuff2">stuff2</V>
<V n="stuff3">stuff3</V>
<P id="stuff11">
<V n="stuff111">stuff111</V>
<V n="stuff112">stuff112</V>
<V n="stuff113">stuff113</V>
<V n="stuff114">stuff114</V>
<V n="stuff115">stuff115</V>
<V n="stuff116">stuff116</V>
</P>
</D>
<D id="2">
<V n="stuff1">stuff1</V>
<V n="stuff2">stuff2</V>
<V n="stuff3">stuff3</V>
<P id="stuff21">
<V n="stuff111">stuff211</V>
<V n="stuff112">stuff212</V>
<V n="stuff113">stuff213</V>
<V n="stuff114">stuff214</V>
<V n="stuff115">stuff215</V>
<V n="stuff116">stuff216</V>
</P>
</D>
最佳答案
不幸的是,我之前发现 Excel 会导入元素值,但不会导入这些元素中的属性。例如“stuff211”导入 stuff211 但不导入 stuff111。我认为这只是功能在 Excel 中工作方式的一个限制。导入必须在 Excel 中,还是可以使用 Python 等编程语言?我之前已经编写了一个程序来从 xml 文件中提取特定元素和属性值,如果需要,我很乐意在明天挖掘并分享?
更新
这是我之前编写并用于将数据从 xml 文件剥离到 csv 文件中的 python 脚本。请注意,我还没有设置它来获取所有属性和元素,因为我最初的目的是从文件中获取特定数据。您需要将 search_items 全局列表编辑为要搜索的项目。
您可以使用 xml 文件路径的单个参数从命令行调用脚本,也可以不使用 arg,系统将提示您选择目录。请让我知道,如果你有任何问题:
#!/usr/bin/python
# Change Ideas
# ------------
# Add option to get all xml elements / attributes
# Add support for json?
import sys, os, Tkinter, tkFileDialog as fd, traceback
# stop tinker shell from opening as only needed for file dialog
root = Tkinter.Tk()
root.withdraw()
# globals
debug_on = False
#get_all_elements = False
#get_all_attributes = False
# search items to be defined each time you run to identify values to search for.
# each item should have a search text, a type and optionally a heading e.g.
# search_items = ['exact_serach_text', 'item_type', 'column_heading(optional)']
# note: search items are case sensitive.
#
############################## E X A M P L E ##############################
search_items = [
['policyno=', 'xml_attribute', 'Policy No' ],
['transid=', 'xml_attribute', 'Trans ID' ],
['policyPremium=', 'xml_attribute', 'Pol Prem' ],
['outstandingBalance=', 'xml_attribute', 'Balance' ],
['APRCharge=', 'xml_attribute', 'APR Chrg' ],
['PayByAnnualDD=', 'xml_attribute', 'Annual DD' ],
['PayByDD=', 'xml_attribute', 'Pay by DD' ],
['mtaDebitAmount=', 'xml_attribute', 'MTA Amt' ],
['paymentMethod=', 'xml_attribute', 'Pmt Meth' ],
['ddFirstPaymentAmount=', 'xml_attribute', '1st Amt' ],
['ddRemainingPaymentsAmount=', 'xml_attribute', 'Other Amt' ],
['ddNumberOfPaymentsRemaining=', 'xml_attribute', 'Instl Rem' ],
]
item_types = ['xml_attribute', 'xml_element']
def get_heads():
heads = []
for i in search_items:
try:
# raise error if i[2] does not exist or is empty
assert len(i[2]) > 0, "No value in heading, use search text."
except:
heads.append(i[0]) # use search item as not heading is given
else:
heads.append(i[2])
return heads
def write_csv_file(path, heads, data):
"""
Writes data to file, use None for heads param if no headers required.
"""
with open(path, 'wb') as fileout:
writer = csv.writer(fileout)
if heads:
writer.writerow(heads)
for row in data:
try:
writer.writerow(row)
except:
print '...row failed in write to file:', row
exc_type, exc_value, exc_traceback = sys.exc_info()
lines = traceback.format_exception(exc_type, exc_value, exc_traceback)
for line in lines:
print '!!', line
print 'Data written to:', path, '\n'
def find_val_in_line(item, item_type, line):
if item_type.lower() == 'xml_element':
print 'Testing still in progress for xml elements, please check output carefully'
b1, b2 = ">", "<"
tmp = line.find(item) # find the starting point of the element value
x = line.find(b1, tmp+1) + len(boundary) # find next boundary after item
y = line.find(b2, x) # find subsequent boundary to mark end of element value
return line[x:y]
elif item_type.lower() == 'xml_attribute':
b = '"'
tmp = line.find(item) # find the starting point of the attribute
x = line.find(b, tmp+1) + len(b) # find next boundary after item
y = line.find(b, x) # find subsequent boundary to mark end of attribute
return line[x:y] # return value between start and end boundaries
else:
print 'This program does not currently support type:', item_type
print 'Returning null'
return None
def find_vals_in_file(file_path):
with open(file_path, "r") as f:
buf = f.readlines()
f.seek(0)
data, row = [], []
found_in_row, pos = 0, 0
l = len(search_items)
if debug_on: print '\nsearch_items set to:\n' + str(search_items) + '\n'
# loop through the lines in the file...
for line in buf:
if debug_on: print '\n..line set to:\n ' + line
# loop through search items on each line...
for i in search_items:
if debug_on: print '...item set to:\n ' + i[0]
# if the search item is found in the line...
if i[0] in line:
val = find_val_in_line(i[0], i[1], line)
# only count as another item found if not already in that row
try:
# do not increment cnt if this works as item already exists
row[pos] = val
if debug_on: print '.....repeat item found:- ' + i[0] + ':' + val
except IndexError:
found_in_row += 1 # Index does not exist, count as new
row.append(val)
if debug_on: print '....item found, row set to:\n ' + str(row)
# if we have a full row then add row to data and start row again...
if found_in_row == l:
if debug_on: print '......row complete, appending to data\n'
data.append(row)
row, found_in_row = [], 0
pos += 1 # start at 0 and increment 1 at end of each search item
pos = 0
f.close()
return data
def main():
path, matches = None, []
os.chdir(os.getenv('userprofile'))
# check cmd line args provided...
if len(sys.argv) > 1:
path = sys.argv[1]
else:
while not path:
try:
print 'Please select a file to be parsed...'
path = fd.askopenfilename()
except:
print 'Error selecting file, please try again.'
# search for string in each file...
try:
matches = find_vals_in_file(path)
except:
exc_type, exc_value, exc_traceback = sys.exc_info()
lines = traceback.format_exception(exc_type, exc_value, exc_traceback)
print "An error occurred checking file:", path
print ''.join('!! ' + line for line in lines)
# write output to file...
if len(matches) == 0:
print "No matches were found in the files reviewed."
else:
heads = get_heads()
output_path = os.path.join(os.getcwd(),'tmp_matches.csv')
write_csv_file(output_path, heads, matches)
print "Please rename the file if you wish to keep it as it will be overwritten..."
print "\nOpening file..."
os.startfile(output_path)
if debug_on:
print "\nWriting output to screen\n", "-"*24
print heads
for row in matches:
print row
if __name__ == '__main__':
main()
关于xml - 如何在excel中使一个xml标签成为一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17305902/
所以我使用一个带有整个 block 的标签作为链接,它是一个产品展示,所以你点击它会转到产品页面。现在我创建了一个标签作为链接到购物车页面的按钮。所以我让它工作,但是当我点击购物车按钮时,两个页面都会
根据 Web 标准,创建带有标题 1 的链接的正确代码是什么? 是吗 stackoverflow 或 stackoverflow 谢谢 最佳答案 根据网络标准,您不能将 block 元素放入内
在Java中它是这样写的..当我移植这段代码时...意识到没有这样的东西 break 和continue . 我知道这些命令没有包含在内,因为在使用带有命令的 goto 时必须有一种更简洁的方法来执
我们有一个相当标准的发布过程,使用 Visual Source Safe 在发布之前标记构建。这允许我们在出现任何问题时从该标签中获取,并在需要更改时使用它进行分支。 我们有几个不同的项目,并且总是使
我必须创建一个搜索内容,其中包含搜索框、标题和段落描述。默认情况下,描述被禁用,当我输入一些与描述文本匹配的文本时,描述段落标签应该打开。一些匹配的演示是这样的: [ fiddle ][1] 但默认情
我一直在阅读有关 的文档标签,我似乎无法理解它与简单地使用 有何不同那是 display: none; 文档:template tag 例子 对比 例子
我需要一个脚本来复制当开关按钮打开时标记,当开关按钮关闭时删除标记。我需要一个简单的方法。这是开关按钮: 我试过这个: var change
JSF 是一个 MVC 框架,但我很困惑为什么我们已经有了这么多 HTML 标签还需要 JSF 标签。毫无疑问,JSF 简化了很多事情。我想进一步了解 JSF 中的模型 View 和 Controll
我在这个 website 上看到了那些 html 代码: Homepa
我添加了 photoswipe 插件,可以使用 搜索我的所有照片。标签,如果点击,照片就会变成全屏。我让它工作了,但现在我的导航栏(有 标签)在点击时会触发 photoswipe 插件。 在 ph
标签
我正在尝试截断显示自 的文本标签,但它不工作。我将样式应用于其他标签样式并且它确实有效(我看到的示例中没有一个使用 标签)。我想知道是否有人可以向我解释为什么会这样(我不是最擅长 HTML/CSS
HTML 是这样的: Menu 1 Menu 2 Sub menu 2
我可以更改 TextInputLayout 的位置 float 标签(底部 float 标签)吗?我需要为波纹管 float 标签设置正确的位置。 最佳答案 我解决了我的问题,这是我的 xml:
我的代码是 printMsg : function(data) { $("#message").html(data.bodyText); ... } 这里 data.body
我是 Scrapy 和 Xpath 的初学者,我正在寻找解析具有以下结构的网站 cat1 value1 value2
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及
我必须从 xml 中解析数据。这是我的 xml- 或者它的 url 是:http://mobileecommerce.site247365.com/admin/catdata.xml News f
如何创建应该允许多行数据的标记。不要说使用textarea标签。我知道,但我只想 标记因为标签具有 value 属性。所以当我从 xml 文件获取值时,我应该使用 jquery 语法动态获取.. 最佳
我有一个页面使用我定义的某些样式。 在同一页面上,我刚刚导入了一个使用自己样式的外部 jQuery 插件,例如,包括 。被我自己覆盖的标签样式。 如何确保我的样式表中的样式不会覆盖 jQuery 插件
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我是一名优秀的程序员,十分优秀!